Version Description
- Important feature & 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.4 |
Comparing to | |
See all releases |
Code changes from version 1.9.3 to 1.9.4
- css/jquery-ui/jquery-ui.css +1225 -0
- css/jquery-ui/jquery-ui.min.css +7 -0
- css/jquery-ui/jquery.ui.core.css +0 -5
- css/jquery-ui/jquery.ui.tabs.css +0 -54
- css/jquery-ui/jquery.ui.theme.css +0 -5
- css/wassup-widget.css +4 -2
- css/wassup.css +45 -31
- js/wassup.js +2 -0
- language/wassup.pot +1193 -1179
- lib/action.php +16 -10
- lib/compatibility.php +40 -22
- lib/faq.php +94 -0
- lib/main.php +67 -41
- lib/settings.php +52 -95
- lib/upgrade.php +22 -9
- lib/wassup.class.php +566 -252
- lib/wassupadmin.php +230 -124
- readme.txt +38 -34
- wassup.php +213 -333
- widgets/widget_functions.php +81 -17
- widgets/widgets.php +3 -4
css/jquery-ui/jquery-ui.css
ADDED
@@ -0,0 +1,1225 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.11.4 - 2015-03-11
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
5 |
+
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
6 |
+
|
7 |
+
/* Layout helpers
|
8 |
+
----------------------------------*/
|
9 |
+
.ui-helper-hidden {
|
10 |
+
display: none;
|
11 |
+
}
|
12 |
+
.ui-helper-hidden-accessible {
|
13 |
+
border: 0;
|
14 |
+
clip: rect(0 0 0 0);
|
15 |
+
height: 1px;
|
16 |
+
margin: -1px;
|
17 |
+
overflow: hidden;
|
18 |
+
padding: 0;
|
19 |
+
position: absolute;
|
20 |
+
width: 1px;
|
21 |
+
}
|
22 |
+
.ui-helper-reset {
|
23 |
+
margin: 0;
|
24 |
+
padding: 0;
|
25 |
+
border: 0;
|
26 |
+
outline: 0;
|
27 |
+
line-height: 1.3;
|
28 |
+
text-decoration: none;
|
29 |
+
font-size: 100%;
|
30 |
+
list-style: none;
|
31 |
+
}
|
32 |
+
.ui-helper-clearfix:before,
|
33 |
+
.ui-helper-clearfix:after {
|
34 |
+
content: "";
|
35 |
+
display: table;
|
36 |
+
border-collapse: collapse;
|
37 |
+
}
|
38 |
+
.ui-helper-clearfix:after {
|
39 |
+
clear: both;
|
40 |
+
}
|
41 |
+
.ui-helper-clearfix {
|
42 |
+
min-height: 0; /* support: IE7 */
|
43 |
+
}
|
44 |
+
.ui-helper-zfix {
|
45 |
+
width: 100%;
|
46 |
+
height: 100%;
|
47 |
+
top: 0;
|
48 |
+
left: 0;
|
49 |
+
position: absolute;
|
50 |
+
opacity: 0;
|
51 |
+
filter:Alpha(Opacity=0); /* support: IE8 */
|
52 |
+
}
|
53 |
+
|
54 |
+
.ui-front {
|
55 |
+
z-index: 100;
|
56 |
+
}
|
57 |
+
|
58 |
+
|
59 |
+
/* Interaction Cues
|
60 |
+
----------------------------------*/
|
61 |
+
.ui-state-disabled {
|
62 |
+
cursor: default !important;
|
63 |
+
}
|
64 |
+
|
65 |
+
|
66 |
+
/* Icons
|
67 |
+
----------------------------------*/
|
68 |
+
|
69 |
+
/* states and images */
|
70 |
+
.ui-icon {
|
71 |
+
display: block;
|
72 |
+
text-indent: -99999px;
|
73 |
+
overflow: hidden;
|
74 |
+
background-repeat: no-repeat;
|
75 |
+
}
|
76 |
+
|
77 |
+
|
78 |
+
/* Misc visuals
|
79 |
+
----------------------------------*/
|
80 |
+
|
81 |
+
/* Overlays */
|
82 |
+
.ui-widget-overlay {
|
83 |
+
position: fixed;
|
84 |
+
top: 0;
|
85 |
+
left: 0;
|
86 |
+
width: 100%;
|
87 |
+
height: 100%;
|
88 |
+
}
|
89 |
+
.ui-accordion .ui-accordion-header {
|
90 |
+
display: block;
|
91 |
+
cursor: pointer;
|
92 |
+
position: relative;
|
93 |
+
margin: 2px 0 0 0;
|
94 |
+
padding: .5em .5em .5em .7em;
|
95 |
+
min-height: 0; /* support: IE7 */
|
96 |
+
font-size: 100%;
|
97 |
+
}
|
98 |
+
.ui-accordion .ui-accordion-icons {
|
99 |
+
padding-left: 2.2em;
|
100 |
+
}
|
101 |
+
.ui-accordion .ui-accordion-icons .ui-accordion-icons {
|
102 |
+
padding-left: 2.2em;
|
103 |
+
}
|
104 |
+
.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
|
105 |
+
position: absolute;
|
106 |
+
left: .5em;
|
107 |
+
top: 50%;
|
108 |
+
margin-top: -8px;
|
109 |
+
}
|
110 |
+
.ui-accordion .ui-accordion-content {
|
111 |
+
padding: 1em 2.2em;
|
112 |
+
border-top: 0;
|
113 |
+
overflow: auto;
|
114 |
+
}
|
115 |
+
.ui-autocomplete {
|
116 |
+
position: absolute;
|
117 |
+
top: 0;
|
118 |
+
left: 0;
|
119 |
+
cursor: default;
|
120 |
+
}
|
121 |
+
.ui-button {
|
122 |
+
display: inline-block;
|
123 |
+
position: relative;
|
124 |
+
padding: 0;
|
125 |
+
line-height: normal;
|
126 |
+
margin-right: .1em;
|
127 |
+
cursor: pointer;
|
128 |
+
vertical-align: middle;
|
129 |
+
text-align: center;
|
130 |
+
overflow: visible; /* removes extra width in IE */
|
131 |
+
}
|
132 |
+
.ui-button,
|
133 |
+
.ui-button:link,
|
134 |
+
.ui-button:visited,
|
135 |
+
.ui-button:hover,
|
136 |
+
.ui-button:active {
|
137 |
+
text-decoration: none;
|
138 |
+
}
|
139 |
+
/* to make room for the icon, a width needs to be set here */
|
140 |
+
.ui-button-icon-only {
|
141 |
+
width: 2.2em;
|
142 |
+
}
|
143 |
+
/* button elements seem to need a little more width */
|
144 |
+
button.ui-button-icon-only {
|
145 |
+
width: 2.4em;
|
146 |
+
}
|
147 |
+
.ui-button-icons-only {
|
148 |
+
width: 3.4em;
|
149 |
+
}
|
150 |
+
button.ui-button-icons-only {
|
151 |
+
width: 3.7em;
|
152 |
+
}
|
153 |
+
|
154 |
+
/* button text element */
|
155 |
+
.ui-button .ui-button-text {
|
156 |
+
display: block;
|
157 |
+
line-height: normal;
|
158 |
+
}
|
159 |
+
.ui-button-text-only .ui-button-text {
|
160 |
+
padding: .4em 1em;
|
161 |
+
}
|
162 |
+
.ui-button-icon-only .ui-button-text,
|
163 |
+
.ui-button-icons-only .ui-button-text {
|
164 |
+
padding: .4em;
|
165 |
+
text-indent: -9999999px;
|
166 |
+
}
|
167 |
+
.ui-button-text-icon-primary .ui-button-text,
|
168 |
+
.ui-button-text-icons .ui-button-text {
|
169 |
+
padding: .4em 1em .4em 2.1em;
|
170 |
+
}
|
171 |
+
.ui-button-text-icon-secondary .ui-button-text,
|
172 |
+
.ui-button-text-icons .ui-button-text {
|
173 |
+
padding: .4em 2.1em .4em 1em;
|
174 |
+
}
|
175 |
+
.ui-button-text-icons .ui-button-text {
|
176 |
+
padding-left: 2.1em;
|
177 |
+
padding-right: 2.1em;
|
178 |
+
}
|
179 |
+
/* no icon support for input elements, provide padding by default */
|
180 |
+
input.ui-button {
|
181 |
+
padding: .4em 1em;
|
182 |
+
}
|
183 |
+
|
184 |
+
/* button icon element(s) */
|
185 |
+
.ui-button-icon-only .ui-icon,
|
186 |
+
.ui-button-text-icon-primary .ui-icon,
|
187 |
+
.ui-button-text-icon-secondary .ui-icon,
|
188 |
+
.ui-button-text-icons .ui-icon,
|
189 |
+
.ui-button-icons-only .ui-icon {
|
190 |
+
position: absolute;
|
191 |
+
top: 50%;
|
192 |
+
margin-top: -8px;
|
193 |
+
}
|
194 |
+
.ui-button-icon-only .ui-icon {
|
195 |
+
left: 50%;
|
196 |
+
margin-left: -8px;
|
197 |
+
}
|
198 |
+
.ui-button-text-icon-primary .ui-button-icon-primary,
|
199 |
+
.ui-button-text-icons .ui-button-icon-primary,
|
200 |
+
.ui-button-icons-only .ui-button-icon-primary {
|
201 |
+
left: .5em;
|
202 |
+
}
|
203 |
+
.ui-button-text-icon-secondary .ui-button-icon-secondary,
|
204 |
+
.ui-button-text-icons .ui-button-icon-secondary,
|
205 |
+
.ui-button-icons-only .ui-button-icon-secondary {
|
206 |
+
right: .5em;
|
207 |
+
}
|
208 |
+
|
209 |
+
/* button sets */
|
210 |
+
.ui-buttonset {
|
211 |
+
margin-right: 7px;
|
212 |
+
}
|
213 |
+
.ui-buttonset .ui-button {
|
214 |
+
margin-left: 0;
|
215 |
+
margin-right: -.3em;
|
216 |
+
}
|
217 |
+
|
218 |
+
/* workarounds */
|
219 |
+
/* reset extra padding in Firefox, see h5bp.com/l */
|
220 |
+
input.ui-button::-moz-focus-inner,
|
221 |
+
button.ui-button::-moz-focus-inner {
|
222 |
+
border: 0;
|
223 |
+
padding: 0;
|
224 |
+
}
|
225 |
+
.ui-datepicker {
|
226 |
+
width: 17em;
|
227 |
+
padding: .2em .2em 0;
|
228 |
+
display: none;
|
229 |
+
}
|
230 |
+
.ui-datepicker .ui-datepicker-header {
|
231 |
+
position: relative;
|
232 |
+
padding: .2em 0;
|
233 |
+
}
|
234 |
+
.ui-datepicker .ui-datepicker-prev,
|
235 |
+
.ui-datepicker .ui-datepicker-next {
|
236 |
+
position: absolute;
|
237 |
+
top: 2px;
|
238 |
+
width: 1.8em;
|
239 |
+
height: 1.8em;
|
240 |
+
}
|
241 |
+
.ui-datepicker .ui-datepicker-prev-hover,
|
242 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
243 |
+
top: 1px;
|
244 |
+
}
|
245 |
+
.ui-datepicker .ui-datepicker-prev {
|
246 |
+
left: 2px;
|
247 |
+
}
|
248 |
+
.ui-datepicker .ui-datepicker-next {
|
249 |
+
right: 2px;
|
250 |
+
}
|
251 |
+
.ui-datepicker .ui-datepicker-prev-hover {
|
252 |
+
left: 1px;
|
253 |
+
}
|
254 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
255 |
+
right: 1px;
|
256 |
+
}
|
257 |
+
.ui-datepicker .ui-datepicker-prev span,
|
258 |
+
.ui-datepicker .ui-datepicker-next span {
|
259 |
+
display: block;
|
260 |
+
position: absolute;
|
261 |
+
left: 50%;
|
262 |
+
margin-left: -8px;
|
263 |
+
top: 50%;
|
264 |
+
margin-top: -8px;
|
265 |
+
}
|
266 |
+
.ui-datepicker .ui-datepicker-title {
|
267 |
+
margin: 0 2.3em;
|
268 |
+
line-height: 1.8em;
|
269 |
+
text-align: center;
|
270 |
+
}
|
271 |
+
.ui-datepicker .ui-datepicker-title select {
|
272 |
+
font-size: 1em;
|
273 |
+
margin: 1px 0;
|
274 |
+
}
|
275 |
+
.ui-datepicker select.ui-datepicker-month,
|
276 |
+
.ui-datepicker select.ui-datepicker-year {
|
277 |
+
width: 45%;
|
278 |
+
}
|
279 |
+
.ui-datepicker table {
|
280 |
+
width: 100%;
|
281 |
+
font-size: .9em;
|
282 |
+
border-collapse: collapse;
|
283 |
+
margin: 0 0 .4em;
|
284 |
+
}
|
285 |
+
.ui-datepicker th {
|
286 |
+
padding: .7em .3em;
|
287 |
+
text-align: center;
|
288 |
+
font-weight: bold;
|
289 |
+
border: 0;
|
290 |
+
}
|
291 |
+
.ui-datepicker td {
|
292 |
+
border: 0;
|
293 |
+
padding: 1px;
|
294 |
+
}
|
295 |
+
.ui-datepicker td span,
|
296 |
+
.ui-datepicker td a {
|
297 |
+
display: block;
|
298 |
+
padding: .2em;
|
299 |
+
text-align: right;
|
300 |
+
text-decoration: none;
|
301 |
+
}
|
302 |
+
.ui-datepicker .ui-datepicker-buttonpane {
|
303 |
+
background-image: none;
|
304 |
+
margin: .7em 0 0 0;
|
305 |
+
padding: 0 .2em;
|
306 |
+
border-left: 0;
|
307 |
+
border-right: 0;
|
308 |
+
border-bottom: 0;
|
309 |
+
}
|
310 |
+
.ui-datepicker .ui-datepicker-buttonpane button {
|
311 |
+
float: right;
|
312 |
+
margin: .5em .2em .4em;
|
313 |
+
cursor: pointer;
|
314 |
+
padding: .2em .6em .3em .6em;
|
315 |
+
width: auto;
|
316 |
+
overflow: visible;
|
317 |
+
}
|
318 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
319 |
+
float: left;
|
320 |
+
}
|
321 |
+
|
322 |
+
/* with multiple calendars */
|
323 |
+
.ui-datepicker.ui-datepicker-multi {
|
324 |
+
width: auto;
|
325 |
+
}
|
326 |
+
.ui-datepicker-multi .ui-datepicker-group {
|
327 |
+
float: left;
|
328 |
+
}
|
329 |
+
.ui-datepicker-multi .ui-datepicker-group table {
|
330 |
+
width: 95%;
|
331 |
+
margin: 0 auto .4em;
|
332 |
+
}
|
333 |
+
.ui-datepicker-multi-2 .ui-datepicker-group {
|
334 |
+
width: 50%;
|
335 |
+
}
|
336 |
+
.ui-datepicker-multi-3 .ui-datepicker-group {
|
337 |
+
width: 33.3%;
|
338 |
+
}
|
339 |
+
.ui-datepicker-multi-4 .ui-datepicker-group {
|
340 |
+
width: 25%;
|
341 |
+
}
|
342 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
343 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
344 |
+
border-left-width: 0;
|
345 |
+
}
|
346 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
347 |
+
clear: left;
|
348 |
+
}
|
349 |
+
.ui-datepicker-row-break {
|
350 |
+
clear: both;
|
351 |
+
width: 100%;
|
352 |
+
font-size: 0;
|
353 |
+
}
|
354 |
+
|
355 |
+
/* RTL support */
|
356 |
+
.ui-datepicker-rtl {
|
357 |
+
direction: rtl;
|
358 |
+
}
|
359 |
+
.ui-datepicker-rtl .ui-datepicker-prev {
|
360 |
+
right: 2px;
|
361 |
+
left: auto;
|
362 |
+
}
|
363 |
+
.ui-datepicker-rtl .ui-datepicker-next {
|
364 |
+
left: 2px;
|
365 |
+
right: auto;
|
366 |
+
}
|
367 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
368 |
+
right: 1px;
|
369 |
+
left: auto;
|
370 |
+
}
|
371 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
372 |
+
left: 1px;
|
373 |
+
right: auto;
|
374 |
+
}
|
375 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
376 |
+
clear: right;
|
377 |
+
}
|
378 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
379 |
+
float: left;
|
380 |
+
}
|
381 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
382 |
+
.ui-datepicker-rtl .ui-datepicker-group {
|
383 |
+
float: right;
|
384 |
+
}
|
385 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
386 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
387 |
+
border-right-width: 0;
|
388 |
+
border-left-width: 1px;
|
389 |
+
}
|
390 |
+
.ui-dialog {
|
391 |
+
overflow: hidden;
|
392 |
+
position: absolute;
|
393 |
+
top: 0;
|
394 |
+
left: 0;
|
395 |
+
padding: .2em;
|
396 |
+
outline: 0;
|
397 |
+
}
|
398 |
+
.ui-dialog .ui-dialog-titlebar {
|
399 |
+
padding: .4em 1em;
|
400 |
+
position: relative;
|
401 |
+
}
|
402 |
+
.ui-dialog .ui-dialog-title {
|
403 |
+
float: left;
|
404 |
+
margin: .1em 0;
|
405 |
+
white-space: nowrap;
|
406 |
+
width: 90%;
|
407 |
+
overflow: hidden;
|
408 |
+
text-overflow: ellipsis;
|
409 |
+
}
|
410 |
+
.ui-dialog .ui-dialog-titlebar-close {
|
411 |
+
position: absolute;
|
412 |
+
right: .3em;
|
413 |
+
top: 50%;
|
414 |
+
width: 20px;
|
415 |
+
margin: -10px 0 0 0;
|
416 |
+
padding: 1px;
|
417 |
+
height: 20px;
|
418 |
+
}
|
419 |
+
.ui-dialog .ui-dialog-content {
|
420 |
+
position: relative;
|
421 |
+
border: 0;
|
422 |
+
padding: .5em 1em;
|
423 |
+
background: none;
|
424 |
+
overflow: auto;
|
425 |
+
}
|
426 |
+
.ui-dialog .ui-dialog-buttonpane {
|
427 |
+
text-align: left;
|
428 |
+
border-width: 1px 0 0 0;
|
429 |
+
background-image: none;
|
430 |
+
margin-top: .5em;
|
431 |
+
padding: .3em 1em .5em .4em;
|
432 |
+
}
|
433 |
+
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
434 |
+
float: right;
|
435 |
+
}
|
436 |
+
.ui-dialog .ui-dialog-buttonpane button {
|
437 |
+
margin: .5em .4em .5em 0;
|
438 |
+
cursor: pointer;
|
439 |
+
}
|
440 |
+
.ui-dialog .ui-resizable-se {
|
441 |
+
width: 12px;
|
442 |
+
height: 12px;
|
443 |
+
right: -5px;
|
444 |
+
bottom: -5px;
|
445 |
+
background-position: 16px 16px;
|
446 |
+
}
|
447 |
+
.ui-draggable .ui-dialog-titlebar {
|
448 |
+
cursor: move;
|
449 |
+
}
|
450 |
+
.ui-draggable-handle {
|
451 |
+
-ms-touch-action: none;
|
452 |
+
touch-action: none;
|
453 |
+
}
|
454 |
+
.ui-menu {
|
455 |
+
list-style: none;
|
456 |
+
padding: 0;
|
457 |
+
margin: 0;
|
458 |
+
display: block;
|
459 |
+
outline: none;
|
460 |
+
}
|
461 |
+
.ui-menu .ui-menu {
|
462 |
+
position: absolute;
|
463 |
+
}
|
464 |
+
.ui-menu .ui-menu-item {
|
465 |
+
position: relative;
|
466 |
+
margin: 0;
|
467 |
+
padding: 3px 1em 3px .4em;
|
468 |
+
cursor: pointer;
|
469 |
+
min-height: 0; /* support: IE7 */
|
470 |
+
/* support: IE10, see #8844 */
|
471 |
+
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
|
472 |
+
}
|
473 |
+
.ui-menu .ui-menu-divider {
|
474 |
+
margin: 5px 0;
|
475 |
+
height: 0;
|
476 |
+
font-size: 0;
|
477 |
+
line-height: 0;
|
478 |
+
border-width: 1px 0 0 0;
|
479 |
+
}
|
480 |
+
.ui-menu .ui-state-focus,
|
481 |
+
.ui-menu .ui-state-active {
|
482 |
+
margin: -1px;
|
483 |
+
}
|
484 |
+
|
485 |
+
/* icon support */
|
486 |
+
.ui-menu-icons {
|
487 |
+
position: relative;
|
488 |
+
}
|
489 |
+
.ui-menu-icons .ui-menu-item {
|
490 |
+
padding-left: 2em;
|
491 |
+
}
|
492 |
+
|
493 |
+
/* left-aligned */
|
494 |
+
.ui-menu .ui-icon {
|
495 |
+
position: absolute;
|
496 |
+
top: 0;
|
497 |
+
bottom: 0;
|
498 |
+
left: .2em;
|
499 |
+
margin: auto 0;
|
500 |
+
}
|
501 |
+
|
502 |
+
/* right-aligned */
|
503 |
+
.ui-menu .ui-menu-icon {
|
504 |
+
left: auto;
|
505 |
+
right: 0;
|
506 |
+
}
|
507 |
+
.ui-progressbar {
|
508 |
+
height: 2em;
|
509 |
+
text-align: left;
|
510 |
+
overflow: hidden;
|
511 |
+
}
|
512 |
+
.ui-progressbar .ui-progressbar-value {
|
513 |
+
margin: -1px;
|
514 |
+
height: 100%;
|
515 |
+
}
|
516 |
+
.ui-progressbar .ui-progressbar-overlay {
|
517 |
+
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
518 |
+
height: 100%;
|
519 |
+
filter: alpha(opacity=25); /* support: IE8 */
|
520 |
+
opacity: 0.25;
|
521 |
+
}
|
522 |
+
.ui-progressbar-indeterminate .ui-progressbar-value {
|
523 |
+
background-image: none;
|
524 |
+
}
|
525 |
+
.ui-resizable {
|
526 |
+
position: relative;
|
527 |
+
}
|
528 |
+
.ui-resizable-handle {
|
529 |
+
position: absolute;
|
530 |
+
font-size: 0.1px;
|
531 |
+
display: block;
|
532 |
+
-ms-touch-action: none;
|
533 |
+
touch-action: none;
|
534 |
+
}
|
535 |
+
.ui-resizable-disabled .ui-resizable-handle,
|
536 |
+
.ui-resizable-autohide .ui-resizable-handle {
|
537 |
+
display: none;
|
538 |
+
}
|
539 |
+
.ui-resizable-n {
|
540 |
+
cursor: n-resize;
|
541 |
+
height: 7px;
|
542 |
+
width: 100%;
|
543 |
+
top: -5px;
|
544 |
+
left: 0;
|
545 |
+
}
|
546 |
+
.ui-resizable-s {
|
547 |
+
cursor: s-resize;
|
548 |
+
height: 7px;
|
549 |
+
width: 100%;
|
550 |
+
bottom: -5px;
|
551 |
+
left: 0;
|
552 |
+
}
|
553 |
+
.ui-resizable-e {
|
554 |
+
cursor: e-resize;
|
555 |
+
width: 7px;
|
556 |
+
right: -5px;
|
557 |
+
top: 0;
|
558 |
+
height: 100%;
|
559 |
+
}
|
560 |
+
.ui-resizable-w {
|
561 |
+
cursor: w-resize;
|
562 |
+
width: 7px;
|
563 |
+
left: -5px;
|
564 |
+
top: 0;
|
565 |
+
height: 100%;
|
566 |
+
}
|
567 |
+
.ui-resizable-se {
|
568 |
+
cursor: se-resize;
|
569 |
+
width: 12px;
|
570 |
+
height: 12px;
|
571 |
+
right: 1px;
|
572 |
+
bottom: 1px;
|
573 |
+
}
|
574 |
+
.ui-resizable-sw {
|
575 |
+
cursor: sw-resize;
|
576 |
+
width: 9px;
|
577 |
+
height: 9px;
|
578 |
+
left: -5px;
|
579 |
+
bottom: -5px;
|
580 |
+
}
|
581 |
+
.ui-resizable-nw {
|
582 |
+
cursor: nw-resize;
|
583 |
+
width: 9px;
|
584 |
+
height: 9px;
|
585 |
+
left: -5px;
|
586 |
+
top: -5px;
|
587 |
+
}
|
588 |
+
.ui-resizable-ne {
|
589 |
+
cursor: ne-resize;
|
590 |
+
width: 9px;
|
591 |
+
height: 9px;
|
592 |
+
right: -5px;
|
593 |
+
top: -5px;
|
594 |
+
}
|
595 |
+
.ui-selectable {
|
596 |
+
-ms-touch-action: none;
|
597 |
+
touch-action: none;
|
598 |
+
}
|
599 |
+
.ui-selectable-helper {
|
600 |
+
position: absolute;
|
601 |
+
z-index: 100;
|
602 |
+
border: 1px dotted black;
|
603 |
+
}
|
604 |
+
.ui-selectmenu-menu {
|
605 |
+
padding: 0;
|
606 |
+
margin: 0;
|
607 |
+
position: absolute;
|
608 |
+
top: 0;
|
609 |
+
left: 0;
|
610 |
+
display: none;
|
611 |
+
}
|
612 |
+
.ui-selectmenu-menu .ui-menu {
|
613 |
+
overflow: auto;
|
614 |
+
/* Support: IE7 */
|
615 |
+
overflow-x: hidden;
|
616 |
+
padding-bottom: 1px;
|
617 |
+
}
|
618 |
+
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
|
619 |
+
font-size: 1em;
|
620 |
+
font-weight: bold;
|
621 |
+
line-height: 1.5;
|
622 |
+
padding: 2px 0.4em;
|
623 |
+
margin: 0.5em 0 0 0;
|
624 |
+
height: auto;
|
625 |
+
border: 0;
|
626 |
+
}
|
627 |
+
.ui-selectmenu-open {
|
628 |
+
display: block;
|
629 |
+
}
|
630 |
+
.ui-selectmenu-button {
|
631 |
+
display: inline-block;
|
632 |
+
overflow: hidden;
|
633 |
+
position: relative;
|
634 |
+
text-decoration: none;
|
635 |
+
cursor: pointer;
|
636 |
+
}
|
637 |
+
.ui-selectmenu-button span.ui-icon {
|
638 |
+
right: 0.5em;
|
639 |
+
left: auto;
|
640 |
+
margin-top: -8px;
|
641 |
+
position: absolute;
|
642 |
+
top: 50%;
|
643 |
+
}
|
644 |
+
.ui-selectmenu-button span.ui-selectmenu-text {
|
645 |
+
text-align: left;
|
646 |
+
padding: 0.4em 2.1em 0.4em 1em;
|
647 |
+
display: block;
|
648 |
+
line-height: 1.4;
|
649 |
+
overflow: hidden;
|
650 |
+
text-overflow: ellipsis;
|
651 |
+
white-space: nowrap;
|
652 |
+
}
|
653 |
+
.ui-slider {
|
654 |
+
position: relative;
|
655 |
+
text-align: left;
|
656 |
+
}
|
657 |
+
.ui-slider .ui-slider-handle {
|
658 |
+
position: absolute;
|
659 |
+
z-index: 2;
|
660 |
+
width: 1.2em;
|
661 |
+
height: 1.2em;
|
662 |
+
cursor: default;
|
663 |
+
-ms-touch-action: none;
|
664 |
+
touch-action: none;
|
665 |
+
}
|
666 |
+
.ui-slider .ui-slider-range {
|
667 |
+
position: absolute;
|
668 |
+
z-index: 1;
|
669 |
+
font-size: .7em;
|
670 |
+
display: block;
|
671 |
+
border: 0;
|
672 |
+
background-position: 0 0;
|
673 |
+
}
|
674 |
+
|
675 |
+
/* support: IE8 - See #6727 */
|
676 |
+
.ui-slider.ui-state-disabled .ui-slider-handle,
|
677 |
+
.ui-slider.ui-state-disabled .ui-slider-range {
|
678 |
+
filter: inherit;
|
679 |
+
}
|
680 |
+
|
681 |
+
.ui-slider-horizontal {
|
682 |
+
height: .8em;
|
683 |
+
}
|
684 |
+
.ui-slider-horizontal .ui-slider-handle {
|
685 |
+
top: -.3em;
|
686 |
+
margin-left: -.6em;
|
687 |
+
}
|
688 |
+
.ui-slider-horizontal .ui-slider-range {
|
689 |
+
top: 0;
|
690 |
+
height: 100%;
|
691 |
+
}
|
692 |
+
.ui-slider-horizontal .ui-slider-range-min {
|
693 |
+
left: 0;
|
694 |
+
}
|
695 |
+
.ui-slider-horizontal .ui-slider-range-max {
|
696 |
+
right: 0;
|
697 |
+
}
|
698 |
+
|
699 |
+
.ui-slider-vertical {
|
700 |
+
width: .8em;
|
701 |
+
height: 100px;
|
702 |
+
}
|
703 |
+
.ui-slider-vertical .ui-slider-handle {
|
704 |
+
left: -.3em;
|
705 |
+
margin-left: 0;
|
706 |
+
margin-bottom: -.6em;
|
707 |
+
}
|
708 |
+
.ui-slider-vertical .ui-slider-range {
|
709 |
+
left: 0;
|
710 |
+
width: 100%;
|
711 |
+
}
|
712 |
+
.ui-slider-vertical .ui-slider-range-min {
|
713 |
+
bottom: 0;
|
714 |
+
}
|
715 |
+
.ui-slider-vertical .ui-slider-range-max {
|
716 |
+
top: 0;
|
717 |
+
}
|
718 |
+
.ui-sortable-handle {
|
719 |
+
-ms-touch-action: none;
|
720 |
+
touch-action: none;
|
721 |
+
}
|
722 |
+
.ui-spinner {
|
723 |
+
position: relative;
|
724 |
+
display: inline-block;
|
725 |
+
overflow: hidden;
|
726 |
+
padding: 0;
|
727 |
+
vertical-align: middle;
|
728 |
+
}
|
729 |
+
.ui-spinner-input {
|
730 |
+
border: none;
|
731 |
+
background: none;
|
732 |
+
color: inherit;
|
733 |
+
padding: 0;
|
734 |
+
margin: .2em 0;
|
735 |
+
vertical-align: middle;
|
736 |
+
margin-left: .4em;
|
737 |
+
margin-right: 22px;
|
738 |
+
}
|
739 |
+
.ui-spinner-button {
|
740 |
+
width: 16px;
|
741 |
+
height: 50%;
|
742 |
+
font-size: .5em;
|
743 |
+
padding: 0;
|
744 |
+
margin: 0;
|
745 |
+
text-align: center;
|
746 |
+
position: absolute;
|
747 |
+
cursor: default;
|
748 |
+
display: block;
|
749 |
+
overflow: hidden;
|
750 |
+
right: 0;
|
751 |
+
}
|
752 |
+
/* more specificity required here to override default borders */
|
753 |
+
.ui-spinner a.ui-spinner-button {
|
754 |
+
border-top: none;
|
755 |
+
border-bottom: none;
|
756 |
+
border-right: none;
|
757 |
+
}
|
758 |
+
/* vertically center icon */
|
759 |
+
.ui-spinner .ui-icon {
|
760 |
+
position: absolute;
|
761 |
+
margin-top: -8px;
|
762 |
+
top: 50%;
|
763 |
+
left: 0;
|
764 |
+
}
|
765 |
+
.ui-spinner-up {
|
766 |
+
top: 0;
|
767 |
+
}
|
768 |
+
.ui-spinner-down {
|
769 |
+
bottom: 0;
|
770 |
+
}
|
771 |
+
|
772 |
+
/* TR overrides */
|
773 |
+
.ui-spinner .ui-icon-triangle-1-s {
|
774 |
+
/* need to fix icons sprite */
|
775 |
+
background-position: -65px -16px;
|
776 |
+
}
|
777 |
+
.ui-tabs {
|
778 |
+
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
779 |
+
padding: .2em;
|
780 |
+
}
|
781 |
+
.ui-tabs .ui-tabs-nav {
|
782 |
+
margin: 0;
|
783 |
+
padding: .2em .2em 0;
|
784 |
+
}
|
785 |
+
.ui-tabs .ui-tabs-nav li {
|
786 |
+
list-style: none;
|
787 |
+
float: left;
|
788 |
+
position: relative;
|
789 |
+
top: 0;
|
790 |
+
margin: 1px .2em 0 0;
|
791 |
+
border-bottom-width: 0;
|
792 |
+
padding: 0;
|
793 |
+
white-space: nowrap;
|
794 |
+
}
|
795 |
+
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
796 |
+
float: left;
|
797 |
+
padding: .5em 1em;
|
798 |
+
text-decoration: none;
|
799 |
+
}
|
800 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
801 |
+
margin-bottom: -1px;
|
802 |
+
padding-bottom: 1px;
|
803 |
+
}
|
804 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
|
805 |
+
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
|
806 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
|
807 |
+
cursor: text;
|
808 |
+
}
|
809 |
+
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
|
810 |
+
cursor: pointer;
|
811 |
+
}
|
812 |
+
.ui-tabs .ui-tabs-panel {
|
813 |
+
display: block;
|
814 |
+
border-width: 0;
|
815 |
+
padding: 1em 1.4em;
|
816 |
+
background: none;
|
817 |
+
}
|
818 |
+
.ui-tooltip {
|
819 |
+
padding: 8px;
|
820 |
+
position: absolute;
|
821 |
+
z-index: 9999;
|
822 |
+
max-width: 300px;
|
823 |
+
-webkit-box-shadow: 0 0 5px #aaa;
|
824 |
+
box-shadow: 0 0 5px #aaa;
|
825 |
+
}
|
826 |
+
body .ui-tooltip {
|
827 |
+
border-width: 2px;
|
828 |
+
}
|
829 |
+
|
830 |
+
/* Component containers
|
831 |
+
----------------------------------*/
|
832 |
+
.ui-widget {
|
833 |
+
font-family:"Open Sans","Lucida Grande",Verdana,Arial,sans-serif;
|
834 |
+
font-size: 1.1em;
|
835 |
+
}
|
836 |
+
.ui-widget .ui-widget {
|
837 |
+
font-size: 1em;
|
838 |
+
}
|
839 |
+
.ui-widget input,
|
840 |
+
.ui-widget select,
|
841 |
+
.ui-widget textarea,
|
842 |
+
.ui-widget button {
|
843 |
+
font-family: Verdana,Arial,sans-serif;
|
844 |
+
font-size: 1em;
|
845 |
+
}
|
846 |
+
.ui-widget-content {
|
847 |
+
border: 1px solid #aaaaaa;
|
848 |
+
background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
|
849 |
+
color: #222222;
|
850 |
+
}
|
851 |
+
.ui-widget-content a {
|
852 |
+
color: #222222;
|
853 |
+
}
|
854 |
+
.ui-widget-header {
|
855 |
+
border: 1px solid #aaaaaa;
|
856 |
+
background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
|
857 |
+
color: #222222;
|
858 |
+
font-weight: bold;
|
859 |
+
}
|
860 |
+
.ui-widget-header a {
|
861 |
+
color: #222222;
|
862 |
+
}
|
863 |
+
|
864 |
+
/* Interaction states
|
865 |
+
----------------------------------*/
|
866 |
+
.ui-state-default,
|
867 |
+
.ui-widget-content .ui-state-default,
|
868 |
+
.ui-widget-header .ui-state-default {
|
869 |
+
border: 1px solid #d3d3d3;
|
870 |
+
background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
|
871 |
+
font-weight: normal;
|
872 |
+
color: #555555;
|
873 |
+
}
|
874 |
+
.ui-state-default a,
|
875 |
+
.ui-state-default a:link,
|
876 |
+
.ui-state-default a:visited {
|
877 |
+
color: #555555;
|
878 |
+
text-decoration: none;
|
879 |
+
}
|
880 |
+
.ui-state-hover,
|
881 |
+
.ui-widget-content .ui-state-hover,
|
882 |
+
.ui-widget-header .ui-state-hover,
|
883 |
+
.ui-state-focus,
|
884 |
+
.ui-widget-content .ui-state-focus,
|
885 |
+
.ui-widget-header .ui-state-focus {
|
886 |
+
border: 1px solid #999999;
|
887 |
+
background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
|
888 |
+
font-weight: normal;
|
889 |
+
color: #212121;
|
890 |
+
}
|
891 |
+
.ui-state-hover a,
|
892 |
+
.ui-state-hover a:hover,
|
893 |
+
.ui-state-hover a:link,
|
894 |
+
.ui-state-hover a:visited,
|
895 |
+
.ui-state-focus a,
|
896 |
+
.ui-state-focus a:hover,
|
897 |
+
.ui-state-focus a:link,
|
898 |
+
.ui-state-focus a:visited {
|
899 |
+
color: #212121;
|
900 |
+
text-decoration: none;
|
901 |
+
}
|
902 |
+
.ui-state-active,
|
903 |
+
.ui-widget-content .ui-state-active,
|
904 |
+
.ui-widget-header .ui-state-active {
|
905 |
+
border: 1px solid #aaaaaa;
|
906 |
+
background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
|
907 |
+
font-weight: normal;
|
908 |
+
color: #212121;
|
909 |
+
}
|
910 |
+
.ui-state-active a,
|
911 |
+
.ui-state-active a:link,
|
912 |
+
.ui-state-active a:visited {
|
913 |
+
color: #212121;
|
914 |
+
text-decoration: none;
|
915 |
+
}
|
916 |
+
|
917 |
+
/* Interaction Cues
|
918 |
+
----------------------------------*/
|
919 |
+
.ui-state-highlight,
|
920 |
+
.ui-widget-content .ui-state-highlight,
|
921 |
+
.ui-widget-header .ui-state-highlight {
|
922 |
+
border: 1px solid #fcefa1;
|
923 |
+
background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
|
924 |
+
color: #363636;
|
925 |
+
}
|
926 |
+
.ui-state-highlight a,
|
927 |
+
.ui-widget-content .ui-state-highlight a,
|
928 |
+
.ui-widget-header .ui-state-highlight a {
|
929 |
+
color: #363636;
|
930 |
+
}
|
931 |
+
.ui-state-error,
|
932 |
+
.ui-widget-content .ui-state-error,
|
933 |
+
.ui-widget-header .ui-state-error {
|
934 |
+
border: 1px solid #cd0a0a;
|
935 |
+
background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
|
936 |
+
color: #cd0a0a;
|
937 |
+
}
|
938 |
+
.ui-state-error a,
|
939 |
+
.ui-widget-content .ui-state-error a,
|
940 |
+
.ui-widget-header .ui-state-error a {
|
941 |
+
color: #cd0a0a;
|
942 |
+
}
|
943 |
+
.ui-state-error-text,
|
944 |
+
.ui-widget-content .ui-state-error-text,
|
945 |
+
.ui-widget-header .ui-state-error-text {
|
946 |
+
color: #cd0a0a;
|
947 |
+
}
|
948 |
+
.ui-priority-primary,
|
949 |
+
.ui-widget-content .ui-priority-primary,
|
950 |
+
.ui-widget-header .ui-priority-primary {
|
951 |
+
font-weight: bold;
|
952 |
+
}
|
953 |
+
.ui-priority-secondary,
|
954 |
+
.ui-widget-content .ui-priority-secondary,
|
955 |
+
.ui-widget-header .ui-priority-secondary {
|
956 |
+
opacity: .7;
|
957 |
+
filter:Alpha(Opacity=70); /* support: IE8 */
|
958 |
+
font-weight: normal;
|
959 |
+
}
|
960 |
+
.ui-state-disabled,
|
961 |
+
.ui-widget-content .ui-state-disabled,
|
962 |
+
.ui-widget-header .ui-state-disabled {
|
963 |
+
opacity: .35;
|
964 |
+
filter:Alpha(Opacity=35); /* support: IE8 */
|
965 |
+
background-image: none;
|
966 |
+
}
|
967 |
+
.ui-state-disabled .ui-icon {
|
968 |
+
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
969 |
+
}
|
970 |
+
|
971 |
+
/* Icons
|
972 |
+
----------------------------------*/
|
973 |
+
|
974 |
+
/* states and images */
|
975 |
+
.ui-icon {
|
976 |
+
width: 16px;
|
977 |
+
height: 16px;
|
978 |
+
}
|
979 |
+
.ui-icon,
|
980 |
+
.ui-widget-content .ui-icon {
|
981 |
+
background-image: url("images/ui-icons_222222_256x240.png");
|
982 |
+
}
|
983 |
+
.ui-widget-header .ui-icon {
|
984 |
+
background-image: url("images/ui-icons_222222_256x240.png");
|
985 |
+
}
|
986 |
+
.ui-state-default .ui-icon {
|
987 |
+
background-image: url("images/ui-icons_888888_256x240.png");
|
988 |
+
}
|
989 |
+
.ui-state-hover .ui-icon,
|
990 |
+
.ui-state-focus .ui-icon {
|
991 |
+
background-image: url("images/ui-icons_454545_256x240.png");
|
992 |
+
}
|
993 |
+
.ui-state-active .ui-icon {
|
994 |
+
background-image: url("images/ui-icons_454545_256x240.png");
|
995 |
+
}
|
996 |
+
.ui-state-highlight .ui-icon {
|
997 |
+
background-image: url("images/ui-icons_2e83ff_256x240.png");
|
998 |
+
}
|
999 |
+
.ui-state-error .ui-icon,
|
1000 |
+
.ui-state-error-text .ui-icon {
|
1001 |
+
background-image: url("images/ui-icons_cd0a0a_256x240.png");
|
1002 |
+
}
|
1003 |
+
|
1004 |
+
/* positioning */
|
1005 |
+
.ui-icon-blank { background-position: 16px 16px; }
|
1006 |
+
.ui-icon-carat-1-n { background-position: 0 0; }
|
1007 |
+
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
1008 |
+
.ui-icon-carat-1-e { background-position: -32px 0; }
|
1009 |
+
.ui-icon-carat-1-se { background-position: -48px 0; }
|
1010 |
+
.ui-icon-carat-1-s { background-position: -64px 0; }
|
1011 |
+
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
1012 |
+
.ui-icon-carat-1-w { background-position: -96px 0; }
|
1013 |
+
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
1014 |
+
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
1015 |
+
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
1016 |
+
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
1017 |
+
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
1018 |
+
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
1019 |
+
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
1020 |
+
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
1021 |
+
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
1022 |
+
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
1023 |
+
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
1024 |
+
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
1025 |
+
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
1026 |
+
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
1027 |
+
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
1028 |
+
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
1029 |
+
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
1030 |
+
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
1031 |
+
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
1032 |
+
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
1033 |
+
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
1034 |
+
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
1035 |
+
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
1036 |
+
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
1037 |
+
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
1038 |
+
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
1039 |
+
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
1040 |
+
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
1041 |
+
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
1042 |
+
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
1043 |
+
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
1044 |
+
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
1045 |
+
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
1046 |
+
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
1047 |
+
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
1048 |
+
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
1049 |
+
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
1050 |
+
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
1051 |
+
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
1052 |
+
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
1053 |
+
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
1054 |
+
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
1055 |
+
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
1056 |
+
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
1057 |
+
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
1058 |
+
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
1059 |
+
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
1060 |
+
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
1061 |
+
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
1062 |
+
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
1063 |
+
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
1064 |
+
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
1065 |
+
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
1066 |
+
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
1067 |
+
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
1068 |
+
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
1069 |
+
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
1070 |
+
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
1071 |
+
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
1072 |
+
.ui-icon-extlink { background-position: -32px -80px; }
|
1073 |
+
.ui-icon-newwin { background-position: -48px -80px; }
|
1074 |
+
.ui-icon-refresh { background-position: -64px -80px; }
|
1075 |
+
.ui-icon-shuffle { background-position: -80px -80px; }
|
1076 |
+
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
1077 |
+
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
1078 |
+
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
1079 |
+
.ui-icon-folder-open { background-position: -16px -96px; }
|
1080 |
+
.ui-icon-document { background-position: -32px -96px; }
|
1081 |
+
.ui-icon-document-b { background-position: -48px -96px; }
|
1082 |
+
.ui-icon-note { background-position: -64px -96px; }
|
1083 |
+
.ui-icon-mail-closed { background-position: -80px -96px; }
|
1084 |
+
.ui-icon-mail-open { background-position: -96px -96px; }
|
1085 |
+
.ui-icon-suitcase { background-position: -112px -96px; }
|
1086 |
+
.ui-icon-comment { background-position: -128px -96px; }
|
1087 |
+
.ui-icon-person { background-position: -144px -96px; }
|
1088 |
+
.ui-icon-print { background-position: -160px -96px; }
|
1089 |
+
.ui-icon-trash { background-position: -176px -96px; }
|
1090 |
+
.ui-icon-locked { background-position: -192px -96px; }
|
1091 |
+
.ui-icon-unlocked { background-position: -208px -96px; }
|
1092 |
+
.ui-icon-bookmark { background-position: -224px -96px; }
|
1093 |
+
.ui-icon-tag { background-position: -240px -96px; }
|
1094 |
+
.ui-icon-home { background-position: 0 -112px; }
|
1095 |
+
.ui-icon-flag { background-position: -16px -112px; }
|
1096 |
+
.ui-icon-calendar { background-position: -32px -112px; }
|
1097 |
+
.ui-icon-cart { background-position: -48px -112px; }
|
1098 |
+
.ui-icon-pencil { background-position: -64px -112px; }
|
1099 |
+
.ui-icon-clock { background-position: -80px -112px; }
|
1100 |
+
.ui-icon-disk { background-position: -96px -112px; }
|
1101 |
+
.ui-icon-calculator { background-position: -112px -112px; }
|
1102 |
+
.ui-icon-zoomin { background-position: -128px -112px; }
|
1103 |
+
.ui-icon-zoomout { background-position: -144px -112px; }
|
1104 |
+
.ui-icon-search { background-position: -160px -112px; }
|
1105 |
+
.ui-icon-wrench { background-position: -176px -112px; }
|
1106 |
+
.ui-icon-gear { background-position: -192px -112px; }
|
1107 |
+
.ui-icon-heart { background-position: -208px -112px; }
|
1108 |
+
.ui-icon-star { background-position: -224px -112px; }
|
1109 |
+
.ui-icon-link { background-position: -240px -112px; }
|
1110 |
+
.ui-icon-cancel { background-position: 0 -128px; }
|
1111 |
+
.ui-icon-plus { background-position: -16px -128px; }
|
1112 |
+
.ui-icon-plusthick { background-position: -32px -128px; }
|
1113 |
+
.ui-icon-minus { background-position: -48px -128px; }
|
1114 |
+
.ui-icon-minusthick { background-position: -64px -128px; }
|
1115 |
+
.ui-icon-close { background-position: -80px -128px; }
|
1116 |
+
.ui-icon-closethick { background-position: -96px -128px; }
|
1117 |
+
.ui-icon-key { background-position: -112px -128px; }
|
1118 |
+
.ui-icon-lightbulb { background-position: -128px -128px; }
|
1119 |
+
.ui-icon-scissors { background-position: -144px -128px; }
|
1120 |
+
.ui-icon-clipboard { background-position: -160px -128px; }
|
1121 |
+
.ui-icon-copy { background-position: -176px -128px; }
|
1122 |
+
.ui-icon-contact { background-position: -192px -128px; }
|
1123 |
+
.ui-icon-image { background-position: -208px -128px; }
|
1124 |
+
.ui-icon-video { background-position: -224px -128px; }
|
1125 |
+
.ui-icon-script { background-position: -240px -128px; }
|
1126 |
+
.ui-icon-alert { background-position: 0 -144px; }
|
1127 |
+
.ui-icon-info { background-position: -16px -144px; }
|
1128 |
+
.ui-icon-notice { background-position: -32px -144px; }
|
1129 |
+
.ui-icon-help { background-position: -48px -144px; }
|
1130 |
+
.ui-icon-check { background-position: -64px -144px; }
|
1131 |
+
.ui-icon-bullet { background-position: -80px -144px; }
|
1132 |
+
.ui-icon-radio-on { background-position: -96px -144px; }
|
1133 |
+
.ui-icon-radio-off { background-position: -112px -144px; }
|
1134 |
+
.ui-icon-pin-w { background-position: -128px -144px; }
|
1135 |
+
.ui-icon-pin-s { background-position: -144px -144px; }
|
1136 |
+
.ui-icon-play { background-position: 0 -160px; }
|
1137 |
+
.ui-icon-pause { background-position: -16px -160px; }
|
1138 |
+
.ui-icon-seek-next { background-position: -32px -160px; }
|
1139 |
+
.ui-icon-seek-prev { background-position: -48px -160px; }
|
1140 |
+
.ui-icon-seek-end { background-position: -64px -160px; }
|
1141 |
+
.ui-icon-seek-start { background-position: -80px -160px; }
|
1142 |
+
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
1143 |
+
.ui-icon-seek-first { background-position: -80px -160px; }
|
1144 |
+
.ui-icon-stop { background-position: -96px -160px; }
|
1145 |
+
.ui-icon-eject { background-position: -112px -160px; }
|
1146 |
+
.ui-icon-volume-off { background-position: -128px -160px; }
|
1147 |
+
.ui-icon-volume-on { background-position: -144px -160px; }
|
1148 |
+
.ui-icon-power { background-position: 0 -176px; }
|
1149 |
+
.ui-icon-signal-diag { background-position: -16px -176px; }
|
1150 |
+
.ui-icon-signal { background-position: -32px -176px; }
|
1151 |
+
.ui-icon-battery-0 { background-position: -48px -176px; }
|
1152 |
+
.ui-icon-battery-1 { background-position: -64px -176px; }
|
1153 |
+
.ui-icon-battery-2 { background-position: -80px -176px; }
|
1154 |
+
.ui-icon-battery-3 { background-position: -96px -176px; }
|
1155 |
+
.ui-icon-circle-plus { background-position: 0 -192px; }
|
1156 |
+
.ui-icon-circle-minus { background-position: -16px -192px; }
|
1157 |
+
.ui-icon-circle-close { background-position: -32px -192px; }
|
1158 |
+
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
1159 |
+
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
1160 |
+
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
1161 |
+
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
1162 |
+
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
1163 |
+
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
1164 |
+
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
1165 |
+
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
1166 |
+
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
1167 |
+
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
1168 |
+
.ui-icon-circle-check { background-position: -208px -192px; }
|
1169 |
+
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
1170 |
+
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
1171 |
+
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
1172 |
+
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
1173 |
+
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
1174 |
+
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
1175 |
+
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
1176 |
+
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
1177 |
+
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
1178 |
+
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
1179 |
+
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
1180 |
+
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
1181 |
+
|
1182 |
+
|
1183 |
+
/* Misc visuals
|
1184 |
+
----------------------------------*/
|
1185 |
+
|
1186 |
+
/* Corner radius */
|
1187 |
+
.ui-corner-all,
|
1188 |
+
.ui-corner-top,
|
1189 |
+
.ui-corner-left,
|
1190 |
+
.ui-corner-tl {
|
1191 |
+
border-top-left-radius: 4px;
|
1192 |
+
}
|
1193 |
+
.ui-corner-all,
|
1194 |
+
.ui-corner-top,
|
1195 |
+
.ui-corner-right,
|
1196 |
+
.ui-corner-tr {
|
1197 |
+
border-top-right-radius: 4px;
|
1198 |
+
}
|
1199 |
+
.ui-corner-all,
|
1200 |
+
.ui-corner-bottom,
|
1201 |
+
.ui-corner-left,
|
1202 |
+
.ui-corner-bl {
|
1203 |
+
border-bottom-left-radius: 4px;
|
1204 |
+
}
|
1205 |
+
.ui-corner-all,
|
1206 |
+
.ui-corner-bottom,
|
1207 |
+
.ui-corner-right,
|
1208 |
+
.ui-corner-br {
|
1209 |
+
border-bottom-right-radius: 4px;
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
/* Overlays */
|
1213 |
+
.ui-widget-overlay {
|
1214 |
+
background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
|
1215 |
+
opacity: .3;
|
1216 |
+
filter: Alpha(Opacity=30); /* support: IE8 */
|
1217 |
+
}
|
1218 |
+
.ui-widget-shadow {
|
1219 |
+
margin: -8px 0 0 -8px;
|
1220 |
+
padding: 8px;
|
1221 |
+
background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
|
1222 |
+
opacity: .3;
|
1223 |
+
filter: Alpha(Opacity=30); /* support: IE8 */
|
1224 |
+
border-radius: 8px;
|
1225 |
+
}
|
css/jquery-ui/jquery-ui.min.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.11.4 - 2015-03-11
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
5 |
+
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
6 |
+
|
7 |
+
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:"Open Sans","Lucida Grande",Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
|
css/jquery-ui/jquery.ui.core.css
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
/*! jQuery UI - v1.10.3 - 2013-05-03
|
2 |
-
* http://jqueryui.com
|
3 |
-
* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
|
4 |
-
|
5 |
-
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}
|
|
|
|
|
|
|
|
|
|
css/jquery-ui/jquery.ui.tabs.css
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
/*!
|
2 |
-
* jQuery UI Tabs 1.10.3
|
3 |
-
* http://jqueryui.com
|
4 |
-
*
|
5 |
-
* Copyright 2013 jQuery Foundation and other contributors
|
6 |
-
* Released under the MIT license.
|
7 |
-
* http://jquery.org/license
|
8 |
-
*
|
9 |
-
* http://docs.jquery.com/UI/Tabs#theming
|
10 |
-
*/
|
11 |
-
@import url("jquery.ui.core.css");
|
12 |
-
|
13 |
-
.ui-tabs {
|
14 |
-
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
15 |
-
padding: .2em;
|
16 |
-
}
|
17 |
-
.ui-tabs .ui-tabs-nav {
|
18 |
-
margin: 0;
|
19 |
-
padding: .2em .2em 0;
|
20 |
-
}
|
21 |
-
.ui-tabs .ui-tabs-nav li {
|
22 |
-
list-style: none;
|
23 |
-
float: left;
|
24 |
-
position: relative;
|
25 |
-
top: 0;
|
26 |
-
margin: 1px .2em 0 0;
|
27 |
-
border-bottom-width: 0;
|
28 |
-
padding: 0;
|
29 |
-
white-space: nowrap;
|
30 |
-
}
|
31 |
-
.ui-tabs .ui-tabs-nav li a {
|
32 |
-
float: left;
|
33 |
-
padding: .5em 1em;
|
34 |
-
text-decoration: none;
|
35 |
-
}
|
36 |
-
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
37 |
-
margin-bottom: -1px;
|
38 |
-
padding-bottom: 1px;
|
39 |
-
}
|
40 |
-
.ui-tabs .ui-tabs-nav li.ui-tabs-active a,
|
41 |
-
.ui-tabs .ui-tabs-nav li.ui-state-disabled a,
|
42 |
-
.ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
|
43 |
-
cursor: text;
|
44 |
-
}
|
45 |
-
.ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
46 |
-
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
|
47 |
-
cursor: pointer;
|
48 |
-
}
|
49 |
-
.ui-tabs .ui-tabs-panel {
|
50 |
-
display: block;
|
51 |
-
border-width: 0;
|
52 |
-
padding: 1em 1.4em;
|
53 |
-
background: none;
|
54 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/jquery-ui/jquery.ui.theme.css
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
/*! jQuery UI - v1.10.3 - 2013-05-03
|
2 |
-
* http://jqueryui.com
|
3 |
-
* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
|
4 |
-
|
5 |
-
.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
|
|
|
|
|
|
|
|
|
|
css/wassup-widget.css
CHANGED
@@ -14,7 +14,8 @@
|
|
14 |
.wassup-widget strong{font-size:1.1em;text-shadow:-1px 1px 0 #efe;}
|
15 |
.wassup-widget p{text-indent:0 !important;}
|
16 |
.wassup-widget .nobullet li p,.wassup-widget .nobullet li div{max-width:90%;margin:1em 0 0;padding:2px 2px 3px 5px;word-wrap:normal;}
|
17 |
-
.wassup-widget li a{}
|
|
|
18 |
.wassup-widget .online-count{min-width:25px;margin:0 2px 5px 7px;padding:2px 3px 0;font-family:"Lucida Console",Monaco,monospace;display:inline;display:inline-block;line-height:1.2em;color:#223;font-size:1.1em;text-align:center;background-color:#ddf0ff;border:1px solid #bbb;border-radius:3px;}
|
19 |
.wassup-widget .online-total{min-width:30px;margin-left:5px;padding:2px 4px 0;font-size:1.3em;}
|
20 |
.wassup-widget p img {margin:0 2px;padding:0;vertical-align:middle;}
|
@@ -23,7 +24,8 @@
|
|
23 |
.wassup-widget .online-spider{background-color:#f6ecce;}
|
24 |
.wassup-widget .online-loggedin{background-color:#dfffcc;}
|
25 |
.wassup-widget p.online-loggedin{color:#223;background-color:#efffe0;border:1px solid #eee;border-radius:7px;}
|
26 |
-
.wassup-widget .wassup-flag img,.wassup-widget .icon{margin-left:3px;padding:0;border:1px solid #eee;}
|
|
|
27 |
.wassup-widget li.stat-count .top-item,.wassup-widget li .top-url{max-width:95%;display:inline-block;float:none;}
|
28 |
.wassup-widget ul li.stat-count .top-item,.wassup-widget ul li.stat-count .top-url{max-width:83%;vertical-align:top;}
|
29 |
.wassup-widget ul li .top-url a{display:block;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
14 |
.wassup-widget strong{font-size:1.1em;text-shadow:-1px 1px 0 #efe;}
|
15 |
.wassup-widget p{text-indent:0 !important;}
|
16 |
.wassup-widget .nobullet li p,.wassup-widget .nobullet li div{max-width:90%;margin:1em 0 0;padding:2px 2px 3px 5px;word-wrap:normal;}
|
17 |
+
.wassup-widget li a{text-decoration:none;}
|
18 |
+
.wassup-widget li a:hover {text-decoration:underline;}
|
19 |
.wassup-widget .online-count{min-width:25px;margin:0 2px 5px 7px;padding:2px 3px 0;font-family:"Lucida Console",Monaco,monospace;display:inline;display:inline-block;line-height:1.2em;color:#223;font-size:1.1em;text-align:center;background-color:#ddf0ff;border:1px solid #bbb;border-radius:3px;}
|
20 |
.wassup-widget .online-total{min-width:30px;margin-left:5px;padding:2px 4px 0;font-size:1.3em;}
|
21 |
.wassup-widget p img {margin:0 2px;padding:0;vertical-align:middle;}
|
24 |
.wassup-widget .online-spider{background-color:#f6ecce;}
|
25 |
.wassup-widget .online-loggedin{background-color:#dfffcc;}
|
26 |
.wassup-widget p.online-loggedin{color:#223;background-color:#efffe0;border:1px solid #eee;border-radius:7px;}
|
27 |
+
.wassup-widget .wassup-flag img,.wassup-widget .icon{margin-left:3px;margin-right:2px;padding:0;border:1px solid #eee; display:inline;display:inline-block;}
|
28 |
+
.wassup-widget .topstats img {float:left;margin:3px 3px 3px 0;}
|
29 |
.wassup-widget li.stat-count .top-item,.wassup-widget li .top-url{max-width:95%;display:inline-block;float:none;}
|
30 |
.wassup-widget ul li.stat-count .top-item,.wassup-widget ul li.stat-count .top-url{max-width:83%;vertical-align:top;}
|
31 |
.wassup-widget ul li .top-url a{display:block;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
css/wassup.css
CHANGED
@@ -29,20 +29,23 @@
|
|
29 |
.wassup-nowrap{white-space:nowrap;text-overflow:ellipsis;}
|
30 |
#wassup-wrap .indent-text,#wassup-wrap li.indent-text{text-indent:10px;}
|
31 |
#wassup-wrap .scrolltop{position:absolute;bottom:0;right:0;width:50px;padding:5px 10px 5px 5px;text-align:right;}
|
32 |
-
#wassup-message{font-size:13px;color:#447;padding:10px;}
|
33 |
-
#wassup-message.error{color:#d00;}
|
34 |
-
#wassup-message.notice-warning{color:#447;}
|
35 |
-
#wassup-message.updated{color:#040;}
|
36 |
/* Form fields */
|
37 |
#wassup-wrap input,#wassup-wrap select,#wassup-wrap textarea,#wassup-wrap text{font-size:13px;background-color:#fdfdfd;border-color:#d6d6d3;}
|
38 |
#wassup-wrap input[type="checkbox"]:disabled, #wassup-wrap input.disabled[type="checkbox"], #wassup-wrap input[type="radio"]:disabled, #wassup-wrap input.disabled[type="radio"], #wassup-wrap input[type="checkbox"]:disabled:checked::before, #wassup-wrap input.disabled[type="checkbox"]:checked::before, #wassup-wrap input[type="radio"]:disabled:checked::before, #wassup-wrap input.disabled[type="radio"]:checked::before {opacity:0.9;}
|
39 |
/* Wassup buttons */
|
40 |
-
#wassup-wrap button,#wassup-wrap .button,#wassup-wrap input[type="button"],#wassup-wrap input[type="reset"],#wassup-wrap input[type="submit"] {display:inline;display:inline-block;height:auto;min-height:
|
41 |
-
#wassup-wrap .button
|
42 |
-
#wassup-wrap .button-
|
43 |
-
#wassup-wrap .button-primary
|
44 |
-
#wassup-wrap .button-
|
45 |
-
#wassup-wrap .button-danger
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
/* ------------------------------------------------------------------
|
47 |
* Wassup topmenu */
|
48 |
#wassup-screen-links{position:relative;top:0;margin:0 25px 0 0;padding:0;}
|
@@ -62,7 +65,10 @@
|
|
62 |
#wassup-menu li:first-child {margin-right:20px;}
|
63 |
.wassup-wp-legacy #screen-meta #contextual-help-link,.wassup-wp-legacy #screen-meta #contextual-help-link.show-settings{display:none;}
|
64 |
@media (max-width: 639px) {
|
65 |
-
#wassup-
|
|
|
|
|
|
|
66 |
}
|
67 |
/* ------------------------------------------------------------------
|
68 |
* Visitor/Detail View */
|
@@ -91,43 +97,45 @@ div.main-tabs{margin:10px auto 3px;padding:3px;color:#445;background-color:#e1df
|
|
91 |
#wassup-wrap .delbut a{text-decoration:none;}
|
92 |
#wassup-wrap .delbut img{float:right;margin-right:17px;}
|
93 |
#wassup-wrap .sum-footer{margin:0 !important;padding:0;height:7px;clear:both;background-color:#2e3e5e;border-top:1px solid #79a;}
|
94 |
-
#wassup-wrap .sum-det,#wassup-wrap .sum-det-spy{margin:0 0 0
|
95 |
-
#wassup-wrap .det1,#wassup-wrap .det2{
|
96 |
#wassup-wrap.wassup .det1{margin-right:90px;}
|
97 |
-
#wassup-wrap .sum-det .det1{padding-left:
|
98 |
-
#wassup-wrap .det3{padding-left:
|
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;}
|
103 |
#wassup-wrap .det2 strong{color:#001616;font-weight:normal;text-shadow:none;}
|
104 |
-
#wassup-wrap .sum-box{float:left;display:block;width:
|
105 |
#wassup-wrap .sum-box span{display:block;margin:0 auto;padding:0;}
|
106 |
-
#wassup-wrap .sum-box-ip{width:
|
|
|
107 |
#wassup-wrap .sum-det-spy span{margin:0;padding:0;margin:0 3px 0 2px;padding:0;}
|
108 |
-
#wassup-wrap .sum-box-log{background-color:#dfa;border-color:#bda;}
|
109 |
#wassup-wrap .sum-box-spider2{background-color:#dcbc9c;border-color:#d6c6bb !important;}
|
110 |
-
#wassup-wrap .sum-box-spam{background-color:#fbbf77;border-color:#cba !important;}
|
111 |
-
#wassup-wrap .sum-box-spider{background-color:#dcbc9c;border-color:#cba !important;}
|
112 |
#wassup-wrap .sum-box-aut{background-color:#fafaaa;border-color:#eede6e;}
|
113 |
-
#wassup-wrap .sum-box-ip a,#wassup-wrap .sum-box-ip a:link {color:#336 !important;border-bottom:1px solid #279 !important;}
|
114 |
#wassup-wrap .sum-box-spider a,#wassup-wrap .sum-box-spider a:link {border-color:#977 !important;}
|
115 |
#wassup-wrap .sum-box-ip a:hover{color:#c64 !important;border-color:#c64 !important;}
|
116 |
-
#wassup-wrap .sum-date{width:175px;
|
117 |
#wassup-wrap .sum-rec ul{border-top:1px solid #999;}
|
118 |
#wassup-wrap .detail-data{margin:0 auto !important;clear:both;border:0 none;color:#445;}
|
119 |
#wassup-wrap .detail-data a,#wassup-wrap .detail-data a:link {color:#02a;}
|
120 |
#wassup-wrap .detail-data a:hover {color:#c64;}
|
121 |
#wassup-wrap .detail-data ul{list-style-type:none;width:100%;min-height:28px;margin:0;padding:0;clear:left;border-top:1px solid #ccc;overflow:hidden;}
|
122 |
#wassup-wrap .detail-data li{list-style-type:none;min-height:27px;margin:0;padding:0;line-height:1.4em;display:block;display:inline-block;float:left;}
|
123 |
-
#wassup-wrap .detail-data li span{display:inline;display:inline-block;padding:
|
|
|
124 |
#wassup-wrap .detail-data li.agent >span{min-width:165px;}
|
125 |
#wassup-wrap .detail-data li.agent >.indent-li-agent{width:165px;}
|
126 |
#wassup-wrap ul.searcheng{background-color:#abdbff;border-color:#9cd;}
|
127 |
#wassup-wrap .searchmedia{background-color:#abbbff !important;border-color:#9b9bff !important;}
|
128 |
#wassup-wrap ul.useragent{background-color:#46a;border-bottom:2px solid #67a;}
|
129 |
#wassup-wrap .togglenavi li.useragent{width:100%;display:block;float:none;color:#fcfcff;text-align:center;}
|
130 |
-
#wassup-wrap .detail-data li.spider,#wassup-wrap .detail-data li.spam{width:100%;padding:0 6px 0
|
131 |
#wassup-wrap li.useragent strong{color:#fff;}
|
132 |
#wassup-wrap ul.spam{background-color:#f23;border-color:#e21e21;}
|
133 |
#wassup-wrap li.spam{color:#ffffef;font-weight:bold;}
|
@@ -149,10 +157,9 @@ div.main-tabs{margin:10px auto 3px;padding:3px;color:#445;background-color:#e1df
|
|
149 |
#wassup-wrap ul.url li{width:100%;display:block;background:#fffdfe url("images/list-bg3.png") repeat-x;border-top:1px solid #c0cfcf;}
|
150 |
#wassup-wrap .url a,#wassup-wrap .url a:link {border-bottom:1px solid !important;}
|
151 |
#wassup-wrap .indent-li{padding-left:12px;}
|
152 |
-
#wassup-wrap .detail-data li >.indent-li-agent{padding:3px 5px 0;display:block;float:left;}
|
153 |
#wassup-wrap .detail-data li.users >.indent-li-agent{padding:3px 10px 0;}
|
154 |
#wassup-wrap .detail-data li.url span{color:#00284a;}
|
155 |
-
#wassup-wrap .detail-data li .request-time{width:
|
156 |
#wassup-wrap .detail-data li .request-uri{padding-left:5px !important;text-align:left;}
|
157 |
#wassup-wrap .detail-data .time{padding-right:2px;text-align:right;}
|
158 |
#wassup-wrap .box-log{margin:0;padding:0;background-color:#e7f1c8;border:1px #bbb solid;}
|
@@ -188,6 +195,8 @@ div.main-tabs{margin:10px auto 3px;padding:3px;color:#445;background-color:#e1df
|
|
188 |
}
|
189 |
@media (max-width: 767px) {
|
190 |
#wassup-wrap .detail-data .url >li >.request-time{width:115px;}
|
|
|
|
|
191 |
}
|
192 |
/* ------------------------------------------------------------------
|
193 |
* Chart and Map */
|
@@ -263,24 +272,29 @@ div.main-tabs{margin:10px auto 3px;padding:3px;color:#445;background-color:#e1df
|
|
263 |
#wassup-wrap .donate-block{margin:10px auto;padding:0;text-align:center;display:block;display:table;}
|
264 |
#wassup-wrap .donate-box{width:370px;float:left;margin:15px 0;padding-right:15px;}
|
265 |
#wassup-wrap .bc-addr{min-width:300px;max-width:300px;width:300px;}
|
266 |
-
#wassup-overlay{
|
267 |
-
#wassup-wrap .faq-question,#wassup-wrap .faq-answer{display:inline-block;width:90%;margin-left:8px;text-indent:-3px;vertical-align:top;}
|
268 |
-
#wassup-wrap #tabcontainer .faq-question{font-style:italic;font-weight:600;}
|
269 |
/* changes some jqueryui-only style elements */
|
270 |
-
#wassup-wrap .ui-widget{font-family:"Open Sans","Lucida Grande",Verdana,Arial,
|
271 |
#wassup-wrap #tabcontainer .ui-tabs-nav{height:33px;border:0 none;border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important;list-style:none;}
|
272 |
#tabcontainer .ui-tabs-nav li{min-width:75px;height:33px;max-height:33px;margin-bottom:0;list-style:none;line-height:1em;font-size:1.2em;text-align:center;text-indent:-3px;float:left;border-color:#9f9f9f;border-bottom:0 none;background-color:#ece9ed;background-image:none !important;-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px;-webkit-box-shadow:0 3px 0 #efefef inset,0 -1px 3px rgba(0,0,0,0.15);box-shadow:0 3px 0 #efefef inset,0 -1px 3px rgba(0,0,0,0.15);}
|
273 |
#wassup-wrap #tabcontainer .ui-tabs-nav li a{padding:0.5em 0.7em;color:#999;}
|
274 |
-
#wassup-wrap #tabcontainer .ui-widget-header{background-image:none;background-color:#ddd;border-bottom:0 none;}
|
275 |
#wassup-wrap .ui-tabs-panel{background-color:#f9f9f9 !important;} /* removes wide color-stripe */
|
276 |
#wassup-wrap #tabcontainer li.ui-tabs-active,#wassup-wrap .ui-tabs-nav li.ui-tabs-active{height:34px;max-height:35px;margin-bottom:-2px;background-image:none;background-color:#f9f9f9 !important;-webkit-box-shadow:0 2px 0 #fff inset,0 -2px 2px rgba(0,0,0,0.25);box-shadow:0 2px 0 #fff inset,0 -2px 2px rgba(0,0,0,0.25);}
|
277 |
#wassup-wrap #tabcontainer li.ui-tabs-active a:focus,#wassup-wrap #tabcontainer li.ui-tabs-active a:active {outline:none;}
|
278 |
#wassup-wrap #tabcontainer .ui-state-active a,#wassup-wrap li.ui-tabs-active a{color:#212121 !important;}
|
279 |
#wassup-wrap #tabcontainer .ui-tabs-nav a:hover {color:#212121;}
|
|
|
|
|
|
|
280 |
@media (max-width: 639px) {
|
281 |
#wassup-wrap p.description,#wassup-wrap p.opt-note{display:none;}
|
282 |
#wassup-wrap #info-sysinfo{display:none;}
|
283 |
}
|
|
|
|
|
|
|
|
|
|
|
284 |
/* ------------------------------------------------------------------
|
285 |
* Dashboard Widget */
|
286 |
#wassup-dashwidget1{border-color:#ddd;}
|
29 |
.wassup-nowrap{white-space:nowrap;text-overflow:ellipsis;}
|
30 |
#wassup-wrap .indent-text,#wassup-wrap li.indent-text{text-indent:10px;}
|
31 |
#wassup-wrap .scrolltop{position:absolute;bottom:0;right:0;width:50px;padding:5px 10px 5px 5px;text-align:right;}
|
|
|
|
|
|
|
|
|
32 |
/* Form fields */
|
33 |
#wassup-wrap input,#wassup-wrap select,#wassup-wrap textarea,#wassup-wrap text{font-size:13px;background-color:#fdfdfd;border-color:#d6d6d3;}
|
34 |
#wassup-wrap input[type="checkbox"]:disabled, #wassup-wrap input.disabled[type="checkbox"], #wassup-wrap input[type="radio"]:disabled, #wassup-wrap input.disabled[type="radio"], #wassup-wrap input[type="checkbox"]:disabled:checked::before, #wassup-wrap input.disabled[type="checkbox"]:checked::before, #wassup-wrap input[type="radio"]:disabled:checked::before, #wassup-wrap input.disabled[type="radio"]:checked::before {opacity:0.9;}
|
35 |
/* Wassup buttons */
|
36 |
+
#wassup-wrap button,#wassup-wrap .button,#wassup-wrap input[type="button"],#wassup-wrap input[type="reset"],#wassup-wrap input[type="submit"] {display:inline;display:inline-block;height:auto;min-height:28px;margin-left:5px;margin-right:5px;padding:2px 10px;font-size:13px;font-weight:normal;line-height:1.8em;text-align:center;color:#123;text-shadow:0 1px 2px #fff;text-decoration:none;white-space:nowrap;vertical-align:baseline;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background-image:none;background-color:#d9d9d9;box-sizing:border-box;border:1px solid #999;border-top-color:#bcbcbc;-moz-border-radius:5px;-webkit-border-radius:5px;-khtml-border-radius:5px;border-radius:5px;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:0 1px 2px #f9f9f9 inset;}
|
37 |
+
#wassup-wrap a.button{border-bottom:1px solid #999;}
|
38 |
+
#wassup-wrap .button:hover,#wassup-wrap .button:focus,.button-pressed {background-color:#ececec;border-color:#999;border-bottom-color:#ddd;box-shadow:0 1px 1px #999 inset;}
|
39 |
+
#wassup-wrap .button-primary{color:#fefff9 !important;text-shadow:0 1px 3px rgba(0,20,40,.25) !important;font-weight:bold !important;background-color:#0555aa !important;border-color:#557faa #557faa #315070 !important;}
|
40 |
+
#wassup-wrap .button-primary:hover,#wassup-wrap .button-primary:focus,#wassup-wrap .button-primary:active {background-color:#056eee !important;border-color:#315070 #557faa #557faa #7b97bb !important;}
|
41 |
+
#wassup-wrap .button-danger{font-weight:bold !important;background-color:#faaa33 !important;border-color:#baaa9a #baaa9a #b19c6c !important;box-shadow:0 1px 2px #ffee66 inset !important;}
|
42 |
+
#wassup-wrap .button-danger:hover,#wassup-wrap .button-danger:focus,#wassup-wrap .button-danger:active {color:#fefff9 !important;text-shadow:0 1px 3px rgba(0,20,40,.25) !important;background-color:#f93939 !important;border-color:#976769 !important;}
|
43 |
+
/* override some notification styles */
|
44 |
+
#wassup-message{font-size:13px;color:#447;padding:10px;}
|
45 |
+
#wassup-message.error{color:#d00;}
|
46 |
+
#wassup-message.notice-warning{color:#447;}
|
47 |
+
#wassup-message.updated{color:#040;}
|
48 |
+
#wassup-message >button,#wassup-message >button:hover {background-color:transparent;border:0 none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;}
|
49 |
/* ------------------------------------------------------------------
|
50 |
* Wassup topmenu */
|
51 |
#wassup-screen-links{position:relative;top:0;margin:0 25px 0 0;padding:0;}
|
65 |
#wassup-menu li:first-child {margin-right:20px;}
|
66 |
.wassup-wp-legacy #screen-meta #contextual-help-link,.wassup-wp-legacy #screen-meta #contextual-help-link.show-settings{display:none;}
|
67 |
@media (max-width: 639px) {
|
68 |
+
#wassup-wrap{margin-right:5px;padding:1px 2px;}
|
69 |
+
#wassup-screen-links{margin-right:5px;}
|
70 |
+
#wassup-menu >#donate-link,#wassup-menu >#menu-link-5,#wassup-menu >#menu-link-4{display:none;}
|
71 |
+
#wassup-screen-links >#wassup-menu >.current{display:block;}
|
72 |
}
|
73 |
/* ------------------------------------------------------------------
|
74 |
* Visitor/Detail View */
|
97 |
#wassup-wrap .delbut a{text-decoration:none;}
|
98 |
#wassup-wrap .delbut img{float:right;margin-right:17px;}
|
99 |
#wassup-wrap .sum-footer{margin:0 !important;padding:0;height:7px;clear:both;background-color:#2e3e5e;border-top:1px solid #79a;}
|
100 |
+
#wassup-wrap .sum-det,#wassup-wrap .sum-det-spy{margin:0 0 0 230px;padding:0;line-height:1.3em;display:block;clear:right;position:relative;}
|
101 |
+
#wassup-wrap .det1,#wassup-wrap .det2{line-height:1.5em;display:block;}
|
102 |
#wassup-wrap.wassup .det1{margin-right:90px;}
|
103 |
+
#wassup-wrap .sum-det .det1{padding-left:5px;text-indent:-5px;font-size:14px;}
|
104 |
+
#wassup-wrap .det3{padding-left:15px;}
|
105 |
#wassup-wrap .det1 span{color:#00284a;}
|
106 |
#wassup-wrap .det1 a{font-weight:bold;border-bottom:1px solid !important;}
|
107 |
#wassup-wrap .det2 a,#wassup-wrap .det2 a:link, #wassup-wrap .sum-det span.det2 a{color:#02a !important;}
|
108 |
#wassup-wrap .det2 a:hover, #wassup-wrap .sum-det span.det2 a:hover {color:#d54d22 !important;}
|
109 |
#wassup-wrap .det2 strong{color:#001616;font-weight:normal;text-shadow:none;}
|
110 |
+
#wassup-wrap .sum-box{float:left;display:block;width:225px;min-height:50px;margin:5px 0 3px 0;padding:0;color:#00284a;text-align:center;overflow:hidden;}
|
111 |
#wassup-wrap .sum-box span{display:block;margin:0 auto;padding:0;}
|
112 |
+
#wassup-wrap .sum-box .sum-box-ip{width:200px;height:25px;padding:5px 0 0 0;white-space:nowrap;text-overflow:ellipsis;white-space:nowrap;text-overflow:ellipsis;font-family:tahoma,verdana,arial,sans-serif;font-weight:bold;text-shadow:rgba(255,253,240,0.7) 0 -1px 0;background:#dde url("images/sum-box.png") bottom left;border:1px solid #b6c6cf;border-radius:3px;}
|
113 |
+
#wassup-wrap .sum-box .sum-box-ipv6{width:220px;margin:0 0 0 2px;font-size:11px;}
|
114 |
#wassup-wrap .sum-det-spy span{margin:0;padding:0;margin:0 3px 0 2px;padding:0;}
|
115 |
+
#wassup-wrap .sum-box .sum-box-log{background-color:#dfa;border-color:#bda;}
|
116 |
#wassup-wrap .sum-box-spider2{background-color:#dcbc9c;border-color:#d6c6bb !important;}
|
117 |
+
#wassup-wrap .sum-box .sum-box-spam{background-color:#fbbf77;border-color:#cba !important;}
|
118 |
+
#wassup-wrap .sum-box .sum-box-spider{background-color:#dcbc9c;border-color:#cba !important;}
|
119 |
#wassup-wrap .sum-box-aut{background-color:#fafaaa;border-color:#eede6e;}
|
120 |
+
#wassup-wrap .sum-box .sum-box-ip a,#wassup-wrap .sum-box >.sum-box-ip a:link {color:#336 !important;border-bottom:1px solid #279 !important;}
|
121 |
#wassup-wrap .sum-box-spider a,#wassup-wrap .sum-box-spider a:link {border-color:#977 !important;}
|
122 |
#wassup-wrap .sum-box-ip a:hover{color:#c64 !important;border-color:#c64 !important;}
|
123 |
+
#wassup-wrap .sum-box >.sum-date{width:175px;line-height:1.1em;}
|
124 |
#wassup-wrap .sum-rec ul{border-top:1px solid #999;}
|
125 |
#wassup-wrap .detail-data{margin:0 auto !important;clear:both;border:0 none;color:#445;}
|
126 |
#wassup-wrap .detail-data a,#wassup-wrap .detail-data a:link {color:#02a;}
|
127 |
#wassup-wrap .detail-data a:hover {color:#c64;}
|
128 |
#wassup-wrap .detail-data ul{list-style-type:none;width:100%;min-height:28px;margin:0;padding:0;clear:left;border-top:1px solid #ccc;overflow:hidden;}
|
129 |
#wassup-wrap .detail-data li{list-style-type:none;min-height:27px;margin:0;padding:0;line-height:1.4em;display:block;display:inline-block;float:left;}
|
130 |
+
#wassup-wrap .detail-data li >span{display:inline;display:inline-block;padding:2px 0 0;}
|
131 |
+
#wassup-wrap .detail-data li >.indent-li-agent{display:block;float:left;}
|
132 |
#wassup-wrap .detail-data li.agent >span{min-width:165px;}
|
133 |
#wassup-wrap .detail-data li.agent >.indent-li-agent{width:165px;}
|
134 |
#wassup-wrap ul.searcheng{background-color:#abdbff;border-color:#9cd;}
|
135 |
#wassup-wrap .searchmedia{background-color:#abbbff !important;border-color:#9b9bff !important;}
|
136 |
#wassup-wrap ul.useragent{background-color:#46a;border-bottom:2px solid #67a;}
|
137 |
#wassup-wrap .togglenavi li.useragent{width:100%;display:block;float:none;color:#fcfcff;text-align:center;}
|
138 |
+
#wassup-wrap .detail-data li.spider,#wassup-wrap .detail-data li.spam{width:100%;padding:0 6px 0 5px;display:block;float:none;}
|
139 |
#wassup-wrap li.useragent strong{color:#fff;}
|
140 |
#wassup-wrap ul.spam{background-color:#f23;border-color:#e21e21;}
|
141 |
#wassup-wrap li.spam{color:#ffffef;font-weight:bold;}
|
157 |
#wassup-wrap ul.url li{width:100%;display:block;background:#fffdfe url("images/list-bg3.png") repeat-x;border-top:1px solid #c0cfcf;}
|
158 |
#wassup-wrap .url a,#wassup-wrap .url a:link {border-bottom:1px solid !important;}
|
159 |
#wassup-wrap .indent-li{padding-left:12px;}
|
|
|
160 |
#wassup-wrap .detail-data li.users >.indent-li-agent{padding:3px 10px 0;}
|
161 |
#wassup-wrap .detail-data li.url span{color:#00284a;}
|
162 |
+
#wassup-wrap .detail-data li .request-time{width:210px;margin:0;padding-left:7px;padding-right:3px;text-align:right;}
|
163 |
#wassup-wrap .detail-data li .request-uri{padding-left:5px !important;text-align:left;}
|
164 |
#wassup-wrap .detail-data .time{padding-right:2px;text-align:right;}
|
165 |
#wassup-wrap .box-log{margin:0;padding:0;background-color:#e7f1c8;border:1px #bbb solid;}
|
195 |
}
|
196 |
@media (max-width: 767px) {
|
197 |
#wassup-wrap .detail-data .url >li >.request-time{width:115px;}
|
198 |
+
#wassup-wrap .sum-box{width:180px;overflow:hidden;}
|
199 |
+
#wassup-wrap .sum-box >.sum-box-ip{width:170px;white-space:nowrap;text-overflow:ellipsis;}
|
200 |
}
|
201 |
/* ------------------------------------------------------------------
|
202 |
* Chart and Map */
|
272 |
#wassup-wrap .donate-block{margin:10px auto;padding:0;text-align:center;display:block;display:table;}
|
273 |
#wassup-wrap .donate-box{width:370px;float:left;margin:15px 0;padding-right:15px;}
|
274 |
#wassup-wrap .bc-addr{min-width:300px;max-width:300px;width:300px;}
|
275 |
+
/* #wassup-wrap.ui-widget-overlay{background:#777;} */
|
|
|
|
|
276 |
/* changes some jqueryui-only style elements */
|
277 |
+
#wassup-wrap .ui-widget{font-family:"Open Sans","Lucida Grande",Verdana,Arial,sans-serif;}
|
278 |
#wassup-wrap #tabcontainer .ui-tabs-nav{height:33px;border:0 none;border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important;list-style:none;}
|
279 |
#tabcontainer .ui-tabs-nav li{min-width:75px;height:33px;max-height:33px;margin-bottom:0;list-style:none;line-height:1em;font-size:1.2em;text-align:center;text-indent:-3px;float:left;border-color:#9f9f9f;border-bottom:0 none;background-color:#ece9ed;background-image:none !important;-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px;-webkit-box-shadow:0 3px 0 #efefef inset,0 -1px 3px rgba(0,0,0,0.15);box-shadow:0 3px 0 #efefef inset,0 -1px 3px rgba(0,0,0,0.15);}
|
280 |
#wassup-wrap #tabcontainer .ui-tabs-nav li a{padding:0.5em 0.7em;color:#999;}
|
|
|
281 |
#wassup-wrap .ui-tabs-panel{background-color:#f9f9f9 !important;} /* removes wide color-stripe */
|
282 |
#wassup-wrap #tabcontainer li.ui-tabs-active,#wassup-wrap .ui-tabs-nav li.ui-tabs-active{height:34px;max-height:35px;margin-bottom:-2px;background-image:none;background-color:#f9f9f9 !important;-webkit-box-shadow:0 2px 0 #fff inset,0 -2px 2px rgba(0,0,0,0.25);box-shadow:0 2px 0 #fff inset,0 -2px 2px rgba(0,0,0,0.25);}
|
283 |
#wassup-wrap #tabcontainer li.ui-tabs-active a:focus,#wassup-wrap #tabcontainer li.ui-tabs-active a:active {outline:none;}
|
284 |
#wassup-wrap #tabcontainer .ui-state-active a,#wassup-wrap li.ui-tabs-active a{color:#212121 !important;}
|
285 |
#wassup-wrap #tabcontainer .ui-tabs-nav a:hover {color:#212121;}
|
286 |
+
.wassup .ui-dialog-titlebar .ui-button >.ui-button-text{display:none;}
|
287 |
+
#wassup-dialog{display:none;}
|
288 |
+
#wassup-dialog.ui-dialog{display:block;}
|
289 |
@media (max-width: 639px) {
|
290 |
#wassup-wrap p.description,#wassup-wrap p.opt-note{display:none;}
|
291 |
#wassup-wrap #info-sysinfo{display:none;}
|
292 |
}
|
293 |
+
/* FAQ */
|
294 |
+
#wassup-wrap.wassup-faq{font-size:15px;line-height:1.3em;}
|
295 |
+
#wassup-wrap.wassup-faq li{padding-bottom:10px;}
|
296 |
+
#wassup-wrap .faq-question,#wassup-wrap .faq-answer{display:inline-block;width:90%;margin-left:8px;text-indent:-3px;vertical-align:top;}
|
297 |
+
#wassup-wrap .faq-question{font-style:italic;font-weight:600;}
|
298 |
/* ------------------------------------------------------------------
|
299 |
* Dashboard Widget */
|
300 |
#wassup-dashwidget1{border-color:#ddd;}
|
js/wassup.js
CHANGED
@@ -6,10 +6,12 @@ var actionparam=""; //for Wassup ajax actions
|
|
6 |
var _countDowncontainer="0"; //for Detail/Online refresh countdown
|
7 |
var _currentSeconds=0;
|
8 |
var tickerID=0;
|
|
|
9 |
function ActivateCountDown(strContainerID, initialValue){
|
10 |
_countDowncontainer=document.getElementById(strContainerID);
|
11 |
SetCountdownText(initialValue);
|
12 |
tickerID=window.setInterval("CountDownTick()",1000);
|
|
|
13 |
}
|
14 |
function CountDownTick(){
|
15 |
if(_currentSeconds >0){SetCountdownText(_currentSeconds-1);}
|
6 |
var _countDowncontainer="0"; //for Detail/Online refresh countdown
|
7 |
var _currentSeconds=0;
|
8 |
var tickerID=0;
|
9 |
+
var selftimerID=0;
|
10 |
function ActivateCountDown(strContainerID, initialValue){
|
11 |
_countDowncontainer=document.getElementById(strContainerID);
|
12 |
SetCountdownText(initialValue);
|
13 |
tickerID=window.setInterval("CountDownTick()",1000);
|
14 |
+
selftimerID=setTimeout('wSelfRefresh()',initialValue*1000+2000);
|
15 |
}
|
16 |
function CountDownTick(){
|
17 |
if(_currentSeconds >0){SetCountdownText(_currentSeconds-1);}
|
language/wassup.pot
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
# LANGUAGE translation for WassUp Real-time Analytics plugin
|
2 |
-
# Copyright (C) 2009-
|
3 |
# This file is distributed under the same license as WassUp plugin.
|
4 |
# Michele Marcucci <michele(at)befree.it>, 2009.
|
5 |
#
|
6 |
#, fuzzy
|
7 |
msgid ""
|
8 |
msgstr ""
|
9 |
-
"Project-Id-Version: WassUp 1.9.
|
10 |
"Report-Msgid-Bugs-To: michele@befree.it\n"
|
11 |
-
"POT-Creation-Date:
|
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,201 +17,197 @@ 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 "Sorry! \"Network Activation\" is DISABLED for subdomain networks."
|
27 |
msgstr ""
|
28 |
|
29 |
-
#: wassup.php:
|
30 |
#, php-format
|
31 |
msgid "%s must be activated on each subdomain site separately."
|
32 |
msgstr ""
|
33 |
|
34 |
-
#: wassup.php:
|
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:
|
41 |
msgid "Back to Plugins"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: wassup.php:
|
45 |
msgid "Database created/upgraded successfully"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: wassup.php:
|
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:
|
55 |
msgid "activation successful"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: wassup.php:
|
59 |
msgid "activation successful. No upgrade necessary."
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: wassup.php:
|
63 |
#, php-format
|
64 |
msgid "%s: database upgrade failed!"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: wassup.php:
|
68 |
#, php-format
|
69 |
msgid "%s: plugin install/upgrade failed!"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: wassup.php:
|
73 |
msgid "Bad request!"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: wassup.php:
|
77 |
msgid "Export ERROR: nonce failure!"
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: wassup.php:
|
81 |
msgid "Export ERROR: login required!"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: wassup.php:
|
85 |
-
msgid "
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: wassup.php:
|
89 |
msgid "ERROR: Nothing to Export."
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: wassup.php:
|
93 |
#: lib/uadetector.class.php:1431
|
94 |
msgid "Unknown Spider"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: wassup.php:
|
98 |
msgid "Unknown Browser"
|
99 |
msgstr ""
|
100 |
|
101 |
-
#: wassup.php:
|
102 |
msgid "Spoofer bot"
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: wassup.php:
|
106 |
#, php-format
|
107 |
msgid "%s WassUp Plugin table has reached maximum size!"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: wassup.php:
|
111 |
msgid "ALERT"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: wassup.php:
|
115 |
msgid "Hi"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: wassup.php:
|
119 |
msgid ""
|
120 |
"you have received this email because your WassUp Database table at your "
|
121 |
"Wordpress blog"
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: wassup.php:
|
125 |
msgid "has reached the maximum value set in the options menu"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: wassup.php:
|
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:
|
135 |
msgid "This alert now will be removed and you will be able to set a new one"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: wassup.php:
|
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:
|
145 |
msgid "Have a nice day!"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: wassup.php:
|
149 |
msgid "encrypted search"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: wassup.php:
|
153 |
msgid "Feed Reader"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: wassup.php:
|
157 |
msgid "feed reader"
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: wassup.php:
|
161 |
msgid "timestamp"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: wassup.php:
|
165 |
msgid "If above timestamp is not current time, this page is cached"
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: wassup.php:
|
169 |
msgid "Visitors Online"
|
170 |
msgstr ""
|
171 |
|
172 |
-
#: wassup.php:
|
173 |
-
#: widgets/widgets.php:
|
174 |
msgid "No Data"
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: lib/action.php:44
|
178 |
-
msgid "Missing or invalid
|
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
|
191 |
msgstr ""
|
192 |
|
193 |
#: lib/action.php:74
|
194 |
msgid "Nothing to do"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: lib/action.php:
|
198 |
msgid "An error occurred during delete of"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: lib/action.php:
|
202 |
msgid "Error"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: lib/action.php:
|
206 |
#, php-format
|
207 |
msgid "%d records deleted!"
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: lib/action.php:
|
211 |
msgid "ERROR: bad date parameter"
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: lib/action.php:
|
215 |
msgid "Error: Nothing to do!"
|
216 |
msgstr ""
|
217 |
|
@@ -231,1090 +227,1454 @@ msgstr ""
|
|
231 |
msgid "Your Akismet API key is not valid."
|
232 |
msgstr ""
|
233 |
|
234 |
-
#: lib/compatibility.php:
|
235 |
msgid "Sorry, WassUp requires WordPress 2.2 or higher to work"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: lib/compatibility.php:
|
239 |
msgid "WARNING! WassUp's backward compatibility modules are missing."
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: lib/compatibility.php:
|
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:
|
250 |
msgid ""
|
251 |
"Sorry, WassUp requires WordPress 3.1 or higher to work in multisite setups"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: lib/compatibility.php:
|
255 |
-
msgid "WARNING! WassUp's PHP compatibility
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: lib/
|
259 |
-
|
260 |
-
#: lib/settings.php:1101
|
261 |
-
msgid "Next"
|
262 |
-
msgstr ""
|
263 |
-
|
264 |
-
#: lib/main.php:58
|
265 |
-
msgid "Previous"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: lib/
|
269 |
#, php-format
|
270 |
-
msgid "
|
|
|
|
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: lib/
|
274 |
-
|
|
|
|
|
|
|
|
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: lib/
|
278 |
-
|
279 |
-
|
|
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: lib/
|
283 |
-
msgid "
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: lib/
|
287 |
-
msgid "
|
|
|
|
|
|
|
|
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: lib/
|
291 |
-
msgid "
|
|
|
|
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: lib/
|
295 |
-
msgid "
|
|
|
|
|
|
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: lib/
|
299 |
-
msgid "
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: lib/
|
303 |
-
|
|
|
|
|
|
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: lib/
|
307 |
-
|
|
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: lib/
|
311 |
-
msgid "
|
|
|
|
|
|
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: lib/
|
315 |
-
|
|
|
|
|
|
|
|
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: lib/
|
319 |
-
|
320 |
-
#: lib/compat-lib/compat_php.php:547
|
321 |
-
msgid "Spider"
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: lib/
|
325 |
-
|
|
|
|
|
|
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: lib/
|
329 |
-
msgid "
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: lib/
|
333 |
-
msgid "
|
|
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: lib/
|
337 |
-
|
|
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: lib/
|
341 |
-
msgid "
|
|
|
|
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: lib/
|
345 |
-
|
|
|
|
|
|
|
|
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: lib/
|
349 |
-
|
350 |
-
msgid "
|
|
|
|
|
|
|
351 |
msgstr ""
|
352 |
|
353 |
-
#: lib/
|
354 |
-
|
355 |
-
|
|
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: lib/
|
359 |
-
|
|
|
|
|
|
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: lib/
|
363 |
-
|
364 |
-
msgid "
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: lib/
|
368 |
-
|
|
|
|
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: lib/
|
372 |
-
msgid "
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: lib/
|
376 |
-
msgid "
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: lib/
|
380 |
-
|
|
|
|
|
|
|
|
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: lib/
|
384 |
-
msgid "
|
|
|
|
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: lib/
|
388 |
-
msgid "
|
|
|
|
|
|
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: lib/
|
392 |
-
|
|
|
|
|
|
|
|
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: lib/
|
396 |
-
msgid "
|
|
|
|
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: lib/
|
400 |
-
|
401 |
-
|
402 |
-
|
|
|
|
|
403 |
msgstr ""
|
404 |
|
405 |
-
#: lib/
|
406 |
-
msgid "
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: lib/
|
410 |
-
|
|
|
|
|
|
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: lib/
|
414 |
-
msgid "
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: lib/
|
418 |
-
|
|
|
|
|
|
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: lib/
|
422 |
-
msgid "
|
|
|
|
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: lib/
|
426 |
-
|
|
|
|
|
|
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: lib/
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
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/
|
442 |
#, php-format
|
443 |
-
msgid "
|
|
|
|
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: lib/
|
447 |
-
msgid "
|
|
|
|
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: lib/
|
451 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: lib/
|
455 |
-
msgid "
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: lib/
|
459 |
-
|
|
|
|
|
|
|
|
|
|
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: lib/
|
463 |
-
msgid "
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: lib/
|
467 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: lib/
|
471 |
-
msgid "
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: lib/
|
475 |
-
msgid "
|
|
|
|
|
|
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: lib/
|
479 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: lib/
|
483 |
-
#: lib/main.php:741 lib/main.php:743
|
484 |
#, php-format
|
485 |
-
msgid "
|
|
|
|
|
|
|
|
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: lib/
|
489 |
-
msgid "
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: lib/
|
493 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: lib/
|
497 |
#, php-format
|
498 |
-
msgid "
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: lib/
|
502 |
-
msgid "
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: lib/main.php:
|
506 |
-
|
|
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: lib/main.php:
|
510 |
-
msgid "
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: lib/main.php:
|
514 |
-
|
|
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: lib/main.php:
|
518 |
-
msgid "
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: lib/main.php:
|
522 |
-
|
|
|
523 |
msgstr ""
|
524 |
|
525 |
-
#: lib/main.php:
|
526 |
-
msgid "
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: lib/main.php:
|
530 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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: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:
|
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:
|
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
|
738 |
-
"panels and the
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: lib/settings.php:
|
742 |
msgid ""
|
743 |
-
"Only administrators
|
744 |
-
"options
|
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 |
-
#:
|
946 |
-
#: widgets/widget_functions.php:396
|
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 "or"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: lib/settings.php:
|
1018 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
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:
|
1034 |
msgid "Exclude by IP"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: lib/settings.php:
|
1038 |
msgid "Enter source IPs to omit from recording"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
-
#: lib/settings.php:
|
1042 |
msgid "comma separated value (ex: 127.0.0.1, 10.0.0.1, etc...)."
|
1043 |
msgstr ""
|
1044 |
|
1045 |
-
#: lib/settings.php:
|
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:
|
1052 |
msgid "Exclude by Hostname"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: lib/settings.php:
|
1056 |
msgid "Enter source hostnames to omit from recording"
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: lib/settings.php:
|
1060 |
msgid "comma separated value (ex: host1.domain.com, host2.domain.net, etc...)."
|
1061 |
msgstr ""
|
1062 |
|
1063 |
-
#: lib/settings.php:
|
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:
|
1070 |
msgid "Exclude by Username"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: lib/settings.php:
|
1074 |
msgid "Enter usernames to omit from recording"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
-
#: lib/settings.php:
|
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:
|
1084 |
msgid "Exclude by URL request"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#: lib/settings.php:
|
1088 |
msgid "Enter URLs of page/post/feed to omit from recording"
|
1089 |
msgstr ""
|
1090 |
|
1091 |
-
#: lib/settings.php:
|
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:
|
1098 |
-
#: lib/settings.php:
|
1099 |
msgid "Prev"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: lib/settings.php:
|
1103 |
msgid "Table Management Options"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: lib/settings.php:
|
1107 |
msgid "Select actions for table growth"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: lib/settings.php:
|
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:
|
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:
|
1124 |
msgid "If you haven't database space problems, you can leave the table as is."
|
1125 |
msgstr ""
|
1126 |
|
1127 |
-
#: lib/settings.php:
|
1128 |
msgid "Current WassUp table usage is"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
-
#: lib/settings.php:
|
1132 |
msgid "records"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: lib/settings.php:
|
1136 |
msgid "Alert me"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
-
#: lib/settings.php:
|
1140 |
msgid "email to"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: lib/settings.php:
|
1144 |
msgid "when table reaches"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: lib/settings.php:
|
1148 |
msgid "Delete old records"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: lib/settings.php:
|
1152 |
-
#, php-format
|
1153 |
msgid ""
|
1154 |
-
"Before deleting, you can
|
1155 |
-
"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
-
#: lib/settings.php:
|
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:
|
1171 |
msgid "records older than"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: lib/settings.php:
|
1175 |
msgid "daily"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: lib/settings.php:
|
1179 |
msgid "Manually delete"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: lib/settings.php:
|
1183 |
msgid "once"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
-
#: lib/settings.php:
|
1187 |
msgid "Delete all records up to record ID#"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: lib/settings.php:
|
1191 |
-
msgid "Last
|
1192 |
msgstr ""
|
1193 |
|
1194 |
-
#: lib/settings.php:
|
1195 |
msgid "Empty table"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
-
#: lib/settings.php:
|
1199 |
msgid "export table in SQL format"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: lib/settings.php:
|
1203 |
msgid "Delete NOW"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: lib/settings.php:
|
1207 |
msgid "Action is NOT undoable!"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
-
#: lib/settings.php:
|
1211 |
-
msgid "Table Export
|
1212 |
msgstr ""
|
1213 |
|
1214 |
-
#: lib/settings.php:
|
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:
|
1222 |
-
msgid "
|
|
|
|
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: lib/settings.php:
|
1226 |
msgid ""
|
1227 |
-
"
|
1228 |
-
"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
-
#: lib/settings.php:
|
|
|
|
|
|
|
|
|
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:
|
1238 |
msgid "Omit record ID from exported fields"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#: lib/settings.php:
|
1242 |
msgid ""
|
1243 |
-
"Check this box when importing data into another Wassup table that
|
1244 |
-
"has records (appending data)."
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: lib/settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1248 |
msgid "Table Optimization"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
-
#: lib/settings.php:
|
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:
|
1259 |
msgid "You can cancel automatic optimization by unchecking the box below."
|
1260 |
msgstr ""
|
1261 |
|
1262 |
-
#: lib/settings.php:
|
1263 |
msgid "Login as network admin to cancel automatic optimization below."
|
1264 |
msgstr ""
|
1265 |
|
1266 |
-
#: lib/settings.php:
|
1267 |
msgid "Login as network admin to enable automatic optimization below."
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: lib/settings.php:
|
1271 |
msgid "Your table engine does NOT support the \"optimize\" command."
|
1272 |
msgstr ""
|
1273 |
|
1274 |
-
#: lib/settings.php:
|
1275 |
msgid "Enable automatic table optimization"
|
1276 |
msgstr ""
|
1277 |
|
1278 |
-
#: lib/settings.php:
|
1279 |
msgid "is overdue"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
-
#: lib/settings.php:
|
1283 |
msgid "today"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
-
#: lib/settings.php:
|
1287 |
#, php-format
|
1288 |
msgid "%d days"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: lib/settings.php:
|
1292 |
msgid "1 week"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
-
#: lib/settings.php:
|
1296 |
#, php-format
|
1297 |
msgid "Next scheduled optimization is: %s (approximately)"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
-
#: lib/settings.php:
|
1301 |
#, php-format
|
1302 |
msgid "Next scheduled optimization is: %s"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: lib/settings.php:
|
1306 |
msgid "never"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
-
#: lib/settings.php:
|
1310 |
msgid "Data Storage Methods"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
-
#: lib/settings.php:
|
1314 |
msgid "Delayed Insert"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
-
#: lib/settings.php:
|
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,631 +1683,283 @@ msgid ""
|
|
1323 |
"disable it on shared servers."
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: lib/settings.php:
|
1327 |
msgid "You can turn off \"delayed insert\" by unchecking the box below."
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: lib/settings.php:
|
1331 |
msgid "This method is unavailable for your storage engine type."
|
1332 |
msgstr ""
|
1333 |
|
1334 |
-
#: lib/settings.php:
|
1335 |
msgid "This method is disabled on your host server."
|
1336 |
msgstr ""
|
1337 |
|
1338 |
-
#: lib/settings.php:
|
1339 |
msgid "Store new visitor records with \"delayed insert\""
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: lib/settings.php:
|
1343 |
msgid "Server Settings and Memory Resources"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#: lib/settings.php:
|
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:
|
1353 |
msgid "\"wp_config.php\", \"php.ini\" and \"my.ini\""
|
1354 |
msgstr ""
|
1355 |
|
1356 |
-
#: lib/settings.php:
|
1357 |
-
#: lib/settings.php:
|
1358 |
msgid "Version"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: lib/settings.php:
|
1362 |
msgid "Table name"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: lib/settings.php:
|
1366 |
msgid "Table Charset/collation"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
-
#: lib/settings.php:
|
1370 |
msgid "Table engine"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: lib/settings.php:
|
1374 |
msgid "Upgrade date"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: lib/settings.php:
|
1378 |
msgid "network"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
-
#: lib/settings.php:
|
1382 |
-
#: lib/settings.php:
|
1383 |
msgid "on"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
-
#: lib/settings.php:
|
1387 |
-
#: lib/settings.php:
|
1388 |
msgid "off"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
-
#: lib/settings.php:
|
1392 |
msgid "Character set"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: lib/settings.php:
|
1396 |
msgid "not set"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: lib/settings.php:
|
1400 |
msgid "Memory Allocation"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
-
#: lib/settings.php:
|
1404 |
msgid "no limit/unknown"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: lib/settings.php:
|
1408 |
msgid "Timezone"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
-
#: lib/settings.php:
|
1412 |
msgid "Time Offset"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
-
#: lib/settings.php:
|
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 "
|
1615 |
-
"into your theme's \"Sidebar\" or \"Footer\" area on the right or use the "
|
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:
|
1688 |
-
|
1689 |
-
msgid "Uncheck the box for \"Enable statistics recording\" under %s tab."
|
1690 |
msgstr ""
|
1691 |
|
1692 |
-
#: lib/settings.php:
|
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:
|
1699 |
-
|
1700 |
-
msgid ""
|
1701 |
-
"If plugin is \"network activated\", login as network admin, go to the "
|
1702 |
-
"Network admin dashboard, navigate to %s tab and Uncheck the box for \"Enable "
|
1703 |
-
"Statistics Recording for network\" and save."
|
1704 |
msgstr ""
|
1705 |
|
1706 |
-
#: lib/settings.php:
|
1707 |
-
|
1708 |
-
msgid ""
|
1709 |
-
"If plugin is NOT \"network activated\", login as network admin, go to the "
|
1710 |
-
"main site/parent domain admin dashboard, navigate to %s tab, then Uncheck "
|
1711 |
-
"the box for \"Enable Statistics Recording for network\" and save."
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
#: lib/settings.php:
|
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:
|
1721 |
-
|
1722 |
-
msgid ""
|
1723 |
-
"Check the box for \"Enable statistics recording\" setting under %s tab and "
|
1724 |
-
"save."
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: lib/settings.php:
|
1728 |
-
|
1729 |
-
msgid "Click the [Reset to Default] button under %s tab."
|
1730 |
msgstr ""
|
1731 |
|
1732 |
-
#: lib/settings.php:
|
1733 |
-
|
1734 |
-
msgid ""
|
1735 |
-
"Navigate to %s tab and uncheck the \"MySQL Delayed Insert\" setting and save."
|
1736 |
msgstr ""
|
1737 |
|
1738 |
-
#: lib/settings.php:
|
1739 |
-
msgid "
|
1740 |
msgstr ""
|
1741 |
|
1742 |
-
#: lib/settings.php:
|
1743 |
-
msgid "
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#: lib/settings.php:
|
1747 |
-
|
1748 |
-
msgid ""
|
1749 |
-
"If you have access to MySql/phpMyAdmin on your host server, run the MySql "
|
1750 |
-
"command %s to repair and release any locks on wassup table. Note that wassup "
|
1751 |
-
"table name may be different in other Wordpress setups."
|
1752 |
msgstr ""
|
1753 |
|
1754 |
-
#: lib/settings.php:
|
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:
|
1761 |
-
|
1762 |
-
|
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:
|
1768 |
-
|
1769 |
-
msgid ""
|
1770 |
-
"Navigate to %s tab and enable the setting for \"Auto Delete\" of old records "
|
1771 |
-
"and/or check the box to receive an email alert when the table size limit is "
|
1772 |
-
"exceeded."
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: lib/settings.php:
|
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:
|
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 "
|
1785 |
-
"Cache, and Hyper Cache. To fix, uninstall your cache plugin or switch to a "
|
1786 |
-
"different (javascript-based) statistics plugin."
|
1787 |
msgstr ""
|
1788 |
|
1789 |
-
#: lib/settings.php:
|
1790 |
-
msgid "
|
1791 |
msgstr ""
|
1792 |
|
1793 |
-
#: lib/settings.php:
|
1794 |
-
|
1795 |
-
msgid "%s is the only caching plugin verified to work with WassUp."
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: lib/settings.php:
|
1799 |
-
msgid "
|
1800 |
msgstr ""
|
1801 |
|
1802 |
-
#: lib/settings.php:
|
1803 |
-
|
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:
|
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:
|
1816 |
-
|
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:
|
1823 |
-
|
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:
|
1830 |
-
|
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:
|
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:
|
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 "
|
1846 |
-
"website to it's \"Top sites\" window (Safari). WassUp tracks these because "
|
1847 |
-
"they are valid requests from the browser and are sometimes indistinguishable "
|
1848 |
-
"from user link clicks."
|
1849 |
msgstr ""
|
1850 |
|
1851 |
-
#: lib/settings.php:
|
1852 |
-
|
|
|
|
|
1853 |
msgstr ""
|
1854 |
|
1855 |
-
#: lib/settings.php:
|
1856 |
-
|
1857 |
-
msgid ""
|
1858 |
-
"To upgrade WassUp when your site is busy, you must first disable statistics "
|
1859 |
-
"recording manually under %s tab, then do the plugin upgrade, and afterwards "
|
1860 |
-
"re-enable recording manually when the upgrade is complete and the plugin is "
|
1861 |
-
"active."
|
1862 |
msgstr ""
|
1863 |
|
1864 |
-
#: lib/settings.php:
|
1865 |
-
msgid "
|
1866 |
msgstr ""
|
1867 |
|
1868 |
-
#: lib/settings.php:
|
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 "
|
1872 |
-
"your browser timing out, not an upgrade failure. WassUp continues it's "
|
1873 |
-
"upgrade in the background and will activate automatically when it is done. "
|
1874 |
-
"After a few minutes (5-10) has passed, revisit Wordpress admin Plugins panel "
|
1875 |
-
"and verify that Wassup plugin has activated."
|
1876 |
msgstr ""
|
1877 |
|
1878 |
-
#: lib/settings.php:
|
1879 |
-
msgid "
|
1880 |
msgstr ""
|
1881 |
|
1882 |
-
#: lib/settings.php:
|
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:
|
1890 |
msgid ""
|
1891 |
-
"
|
1892 |
-
"
|
1893 |
-
"navigate to the main site/parent domain Plugins panel and deactivate Wassup "
|
1894 |
-
"plugin there, then return to Network admin Plugins panel. Click the \"delete"
|
1895 |
-
"\" link below WassUp name. This deletes both data and files permanently from "
|
1896 |
-
"the main site/parent domain and deletes Wassup data from all the subsites in "
|
1897 |
-
"the network."
|
1898 |
msgstr ""
|
1899 |
|
1900 |
-
#: lib/settings.php:
|
1901 |
-
|
1902 |
-
msgid ""
|
1903 |
-
"From a subsite in Wordpress multisite: navigate to %s tab and check the box "
|
1904 |
-
"for \"Permanently remove WassUp data and settings\" and save. Next, go to "
|
1905 |
-
"the subsite's Plugins panel and deactivate WassUp plugin. This deletes the "
|
1906 |
-
"subsite's data permanently. No files are deleted (not needed)."
|
1907 |
msgstr ""
|
1908 |
|
1909 |
-
#: lib/settings.php:
|
1910 |
-
|
|
|
|
|
|
|
1911 |
msgid ""
|
1912 |
-
"
|
1913 |
-
"
|
1914 |
-
"Wordpress Plugins panel and deactivate WassUp plugin. This deletes the data "
|
1915 |
-
"permanently. To delete the plugin files from Wordpress 2.x, use an ftp "
|
1916 |
-
"client software on your PC or login to your host server's \"cpanel\" and use "
|
1917 |
-
"\"File Manager\" to delete the folder \"wassup\" from the %s directory on "
|
1918 |
-
"your host server."
|
1919 |
msgstr ""
|
1920 |
|
1921 |
-
#: lib/settings.php:
|
1922 |
#, php-format
|
1923 |
-
msgid "
|
|
|
|
|
1924 |
msgstr ""
|
1925 |
|
1926 |
-
#: lib/settings.php:
|
1927 |
-
|
|
|
1928 |
msgstr ""
|
1929 |
|
1930 |
-
#: lib/settings.php:
|
1931 |
msgid "How you can donate"
|
1932 |
msgstr ""
|
1933 |
|
1934 |
-
#: lib/settings.php:
|
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:
|
1941 |
#, php-format
|
1942 |
msgid "Donate by %s"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: lib/settings.php:
|
1946 |
#, php-format
|
1947 |
msgid "Donate %s"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
-
#: lib/settings.php:
|
1951 |
msgid "Send your bitcoin donation to this address"
|
1952 |
msgstr ""
|
1953 |
|
@@ -1997,968 +2009,970 @@ msgstr ""
|
|
1997 |
msgid "IMPORTANT: Wassup Widget has changed and must be re-installed."
|
1998 |
msgstr ""
|
1999 |
|
2000 |
-
#: lib/upgrade.php:
|
2001 |
msgid "Welcome to WassUP"
|
2002 |
msgstr ""
|
2003 |
|
2004 |
-
#: lib/upgrade.php:
|
2005 |
#, php-format
|
2006 |
msgid "An error occurred during the install of table %s."
|
2007 |
msgstr ""
|
2008 |
|
2009 |
-
#: lib/wassup.class.php:
|
2010 |
msgid "Administrator"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
-
#: lib/wassup.class.php:
|
2014 |
msgid "Editor"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
-
#: lib/wassup.class.php:
|
2018 |
msgid "Author"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
-
#: lib/wassup.class.php:
|
2022 |
msgid "Contributor"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
-
#: lib/wassup.class.php:
|
2026 |
msgid "Subscriber"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
-
#: lib/wassup.class.php:
|
2030 |
msgid "One - 2 lines chart 1 axis"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
-
#: lib/wassup.class.php:
|
2034 |
msgid "Two - 2 lines chart 2 axes"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
-
#: lib/wassup.class.php:
|
2038 |
msgid "Everything"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
-
#: lib/wassup.class.php:
|
2042 |
msgid "No spider"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
-
#: lib/wassup.class.php:
|
2046 |
msgid "No Spam"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
-
#: lib/wassup.class.php:
|
2050 |
msgid "No Spam, No Spider"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
-
#: lib/wassup.class.php:
|
2054 |
msgid "Users logged in"
|
2055 |
msgstr ""
|
2056 |
|
2057 |
-
#: lib/wassup.class.php:
|
2058 |
-
#:
|
2059 |
-
#:
|
|
|
2060 |
msgid "Comment authors"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: lib/wassup.class.php:
|
2064 |
msgid "Referrer from search engine"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: lib/wassup.class.php:
|
2068 |
msgid "Referrer from ext link"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: lib/wassup.class.php:
|
2072 |
msgid "Don't delete anything"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
-
#: lib/wassup.class.php:
|
2076 |
-
#: lib/compat-lib/
|
|
|
2077 |
msgid "24 hours"
|
2078 |
msgstr ""
|
2079 |
|
2080 |
-
#: lib/wassup.class.php:
|
2081 |
-
#: lib/compat-lib/
|
|
|
2082 |
msgid "7 days"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
-
#: lib/wassup.class.php:
|
2086 |
-
#: lib/compat-lib/
|
|
|
2087 |
msgid "2 weeks"
|
2088 |
msgstr ""
|
2089 |
|
2090 |
-
#: lib/wassup.class.php:
|
2091 |
-
#: lib/compat-lib/
|
|
|
2092 |
msgid "1 month"
|
2093 |
msgstr ""
|
2094 |
|
2095 |
-
#: lib/wassup.class.php:
|
2096 |
-
#: lib/compat-lib/
|
|
|
2097 |
msgid "3 months"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
-
#: lib/wassup.class.php:
|
2101 |
-
#: lib/compat-lib/
|
|
|
2102 |
msgid "6 months"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
#: lib/wassup.class.php:
|
2106 |
-
#: lib/compat-lib/
|
|
|
2107 |
msgid "1 year"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: lib/wassup.class.php:
|
2111 |
msgid "All"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: lib/wassup.class.php:
|
2115 |
msgid "Spider and spam"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: lib/wassup.class.php:
|
2119 |
msgid "IP Address"
|
2120 |
msgstr ""
|
2121 |
|
2122 |
-
#: lib/wassup.class.php:
|
2123 |
msgid "URL Request"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: lib/wassup.class.php:
|
2127 |
msgid "1 hour"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: lib/wassup.class.php:
|
2131 |
msgid "6 hours"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: lib/wassup.class.php:
|
2135 |
msgid "12 hours"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: lib/wassup.class.php:
|
2139 |
msgid "all time"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
-
#: lib/wassup.class.php:
|
2143 |
msgid ""
|
2144 |
"Permission denied! Sorry, you must be an 'administrator' to change settings."
|
2145 |
msgstr ""
|
2146 |
|
2147 |
-
#: lib/wassup.class.php:
|
2148 |
msgid "Nothing to do!"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
-
#: lib/wassup.class.php:
|
2152 |
-
|
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:
|
2161 |
msgid "error"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: lib/wassup.class.php:
|
2165 |
msgid "warning"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: lib/wassup.class.php:
|
2169 |
msgid "updated"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
-
#: lib/wassup.class.php:
|
2173 |
msgid "upgraded"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
-
#: lib/wassup.class.php:
|
2177 |
msgid "deleted"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
-
#: lib/wassup.class.php:
|
2181 |
msgid "ERROR"
|
2182 |
msgstr ""
|
2183 |
|
2184 |
-
#: lib/wassup.class.php:
|
2185 |
#, php-format
|
2186 |
msgid "%s error!"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
-
#: lib/wassup.class.php:
|
2190 |
#, php-format
|
2191 |
msgid "%s encountered an error."
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: lib/wassup.class.php:
|
2195 |
msgid "Wassup auto-delete notice"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
-
#: lib/wassup.class.php:
|
2199 |
#, php-format
|
2200 |
msgid "Auto-delete deleted %d old %s records today."
|
2201 |
msgstr ""
|
2202 |
|
2203 |
-
#: lib/wassup.class.php:
|
2204 |
-
|
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:
|
2219 |
-
|
2220 |
-
msgid "Data contents of table %s"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
-
#: lib/wassup.class.php:
|
2224 |
#, php-format
|
2225 |
-
msgid "
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: lib/wassup.class.php:
|
2229 |
#, php-format
|
2230 |
-
msgid "
|
2231 |
msgstr ""
|
2232 |
|
2233 |
-
#: lib/wassup.class.php:
|
2234 |
#, php-format
|
2235 |
-
msgid "Error with
|
2236 |
msgstr ""
|
2237 |
|
2238 |
-
#: lib/wassup.class.php:
|
2239 |
#, php-format
|
2240 |
-
msgid "
|
2241 |
msgstr ""
|
2242 |
|
2243 |
-
#: lib/wassup.class.php:
|
2244 |
#, php-format
|
2245 |
-
msgid "
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: lib/wassup.class.php:
|
2249 |
#, php-format
|
2250 |
-
msgid "
|
2251 |
msgstr ""
|
2252 |
|
2253 |
-
#: lib/wassup.class.php:
|
2254 |
#, php-format
|
2255 |
-
msgid "
|
2256 |
msgstr ""
|
2257 |
|
2258 |
-
#: lib/wassup.class.php:
|
2259 |
-
|
2260 |
-
msgid "End time: %d"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
-
#: lib/wassup.class.php:
|
2264 |
-
|
2265 |
-
#, php-format
|
2266 |
-
msgid "%d out of %d records exported."
|
2267 |
msgstr ""
|
2268 |
|
2269 |
-
#: lib/wassup.class.php:
|
2270 |
-
|
2271 |
-
#, php-format
|
2272 |
-
msgid "Last record ID: %d"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
-
#: lib/wassup.class.php:
|
2276 |
-
#: lib/wassupadmin.php:
|
2277 |
-
#: lib/compat-lib/
|
2278 |
msgid "direct hit"
|
2279 |
msgstr ""
|
2280 |
|
2281 |
-
#: lib/wassup.class.php:
|
2282 |
-
#: lib/compat-lib/
|
|
|
2283 |
msgid "from your site"
|
2284 |
msgstr ""
|
2285 |
|
2286 |
-
#: lib/wassupadmin.php:
|
2287 |
msgid "paused"
|
2288 |
msgstr ""
|
2289 |
|
2290 |
-
#: lib/wassupadmin.php:
|
2291 |
msgid "Sorry, delete failed!"
|
2292 |
msgstr ""
|
2293 |
|
2294 |
-
#: lib/wassupadmin.php:
|
2295 |
msgid "Delete record failed!"
|
2296 |
msgstr ""
|
2297 |
|
2298 |
-
#: lib/wassupadmin.php:
|
2299 |
msgid "Hide Search"
|
2300 |
msgstr ""
|
2301 |
|
2302 |
-
#: lib/wassupadmin.php:
|
2303 |
msgid "Collapse All"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: lib/wassupadmin.php:
|
2307 |
-
#: lib/wassupadmin.php:
|
2308 |
msgid "Expand All"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
-
#: lib/wassupadmin.php:
|
2312 |
msgid "Expand Chronology"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
-
#: lib/wassupadmin.php:
|
2316 |
msgid "Collapse Chronology"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
-
#: lib/wassupadmin.php:
|
|
|
|
|
|
|
|
|
2320 |
msgid "Visitor Details"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
-
#: lib/wassupadmin.php:
|
2324 |
msgid "Spy Visitors"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
-
#: lib/wassupadmin.php:
|
2328 |
-
#: lib/wassupadmin.php:
|
2329 |
msgid "Current Visitors Online"
|
2330 |
msgstr ""
|
2331 |
|
2332 |
-
#: lib/wassupadmin.php:
|
2333 |
msgid "WassUp Stats"
|
2334 |
msgstr ""
|
2335 |
|
2336 |
-
#: lib/wassupadmin.php:
|
2337 |
msgid "Settings"
|
2338 |
msgstr ""
|
2339 |
|
2340 |
-
#: lib/wassupadmin.php:
|
2341 |
msgid "Nothing to do! Check a \"Delete\" option and try again"
|
2342 |
msgstr ""
|
2343 |
|
2344 |
-
#: lib/wassupadmin.php:
|
2345 |
#, php-format
|
2346 |
msgid "%d records DELETED permanently!"
|
2347 |
msgstr ""
|
2348 |
|
2349 |
-
#: lib/wassupadmin.php:
|
2350 |
msgid "0 records deleted!"
|
2351 |
msgstr ""
|
2352 |
|
2353 |
-
#: lib/wassupadmin.php:
|
2354 |
msgid "Wassup uninstall option updated successfully"
|
2355 |
msgstr ""
|
2356 |
|
2357 |
-
#: lib/wassupadmin.php:
|
2358 |
msgid "Wassup options reset successfully"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
-
#: lib/wassupadmin.php:
|
2362 |
msgid "Sorry! You're not allowed to do that."
|
2363 |
msgstr ""
|
2364 |
|
2365 |
-
#: lib/wassupadmin.php:
|
2366 |
msgid "Wassup spam options updated successfully"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
-
#: lib/wassupadmin.php:
|
2370 |
msgid "records deleted"
|
2371 |
msgstr ""
|
2372 |
|
2373 |
-
#: lib/wassupadmin.php:
|
2374 |
msgid "Sorry! You're not allowed to delete records."
|
2375 |
msgstr ""
|
2376 |
|
2377 |
-
#: lib/wassupadmin.php:
|
2378 |
msgid "WARNING: WassUp is NOT recording new statistics."
|
2379 |
msgstr ""
|
2380 |
|
2381 |
-
#: lib/wassupadmin.php:
|
2382 |
msgid ""
|
2383 |
"To collect visitor data you must check \"Enable statistics recording\" in "
|
2384 |
"\"WassUp-Options: General Setup\" tab"
|
2385 |
msgstr ""
|
2386 |
|
2387 |
-
#: lib/wassupadmin.php:
|
2388 |
msgid ""
|
2389 |
"To collect visitor data you must check \"Enable Statistics Recording for "
|
2390 |
"network\" in \"WassUp-Options: General Setup\" tab"
|
2391 |
msgstr ""
|
2392 |
|
2393 |
-
#: lib/wassupadmin.php:
|
2394 |
msgid ""
|
2395 |
"Contact your site administrator about enabling statistics recording for the "
|
2396 |
"network."
|
2397 |
msgstr ""
|
2398 |
|
2399 |
-
#: lib/wassupadmin.php:
|
2400 |
msgid "Contact your site administrator about enabling statistics recording."
|
2401 |
msgstr ""
|
2402 |
|
2403 |
-
#: lib/wassupadmin.php:
|
2404 |
msgid "Latest Hits"
|
2405 |
msgstr ""
|
2406 |
|
2407 |
-
#: lib/wassupadmin.php:
|
|
|
|
|
|
|
|
|
2408 |
msgid "Donations are really welcome"
|
2409 |
msgstr ""
|
2410 |
|
2411 |
-
#: lib/wassupadmin.php:
|
2412 |
#, php-format
|
2413 |
msgid "Check the %s for updates, bug reports and your hints to improve it"
|
2414 |
msgstr ""
|
2415 |
|
2416 |
-
#: lib/wassupadmin.php:
|
2417 |
msgid "Official WassUp page"
|
2418 |
msgstr ""
|
2419 |
|
2420 |
-
#: lib/wassupadmin.php:
|
2421 |
msgid "WassUp Support"
|
2422 |
msgstr ""
|
2423 |
|
2424 |
-
#: lib/wassupadmin.php:
|
2425 |
msgid "Wassup Support"
|
2426 |
msgstr ""
|
2427 |
|
2428 |
-
#: lib/wassupadmin.php:
|
2429 |
msgid "Exec time"
|
2430 |
msgstr ""
|
2431 |
|
2432 |
-
#: lib/wassupadmin.php:
|
2433 |
msgid "Legend"
|
2434 |
msgstr ""
|
2435 |
|
2436 |
-
#: lib/wassupadmin.php:
|
2437 |
msgid "Logged-in Users"
|
2438 |
msgstr ""
|
2439 |
|
2440 |
-
#: lib/wassupadmin.php:
|
2441 |
msgid "Comment Authors"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: lib/wassupadmin.php:
|
2445 |
msgid "Spiders/bots"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: lib/wassupadmin.php:
|
2449 |
-
#:
|
|
|
2450 |
msgid "Visitors online"
|
2451 |
msgstr ""
|
2452 |
|
2453 |
-
#: lib/wassupadmin.php:
|
2454 |
msgid "From your site"
|
2455 |
msgstr ""
|
2456 |
|
2457 |
-
#: lib/wassupadmin.php:
|
2458 |
msgid "LOGGED IN USER"
|
2459 |
msgstr ""
|
2460 |
|
2461 |
-
#: lib/wassupadmin.php:
|
2462 |
msgid "ADMINISTRATOR"
|
2463 |
msgstr ""
|
2464 |
|
2465 |
-
#: lib/wassupadmin.php:
|
2466 |
msgid "COMMENT AUTHOR"
|
2467 |
msgstr ""
|
2468 |
|
2469 |
-
#: lib/wassupadmin.php:
|
2470 |
msgid "show raw table"
|
2471 |
msgstr ""
|
2472 |
|
2473 |
-
#: lib/wassupadmin.php:
|
2474 |
msgid "Show the items as raw table"
|
2475 |
msgstr ""
|
2476 |
|
2477 |
-
#: lib/wassupadmin.php:
|
2478 |
msgid "Comments Authors"
|
2479 |
msgstr ""
|
2480 |
|
2481 |
-
#: lib/wassupadmin.php:
|
2482 |
msgid "Pause"
|
2483 |
msgstr ""
|
2484 |
|
2485 |
-
#: lib/wassupadmin.php:
|
2486 |
msgid "Play"
|
2487 |
msgstr ""
|
2488 |
|
2489 |
-
#: lib/wassupadmin.php:
|
2490 |
msgid "Show map"
|
2491 |
msgstr ""
|
2492 |
|
2493 |
-
#: lib/wassupadmin.php:
|
2494 |
msgid "Show ip geo location on map"
|
2495 |
msgstr ""
|
2496 |
|
2497 |
-
#: lib/wassupadmin.php:
|
2498 |
msgid "Spy items by"
|
2499 |
msgstr ""
|
2500 |
|
2501 |
-
#: lib/wassupadmin.php:
|
2502 |
msgid "WassUp recording is disabled"
|
2503 |
msgstr ""
|
2504 |
|
2505 |
-
#: lib/wassupadmin.php:
|
2506 |
msgid "WassUp recording is disabled for network."
|
2507 |
msgstr ""
|
2508 |
|
2509 |
-
#: lib/wassupadmin.php:
|
2510 |
msgid "Show details from the last"
|
2511 |
msgstr ""
|
2512 |
|
2513 |
-
#: lib/wassupadmin.php:
|
2514 |
msgid "Items per page"
|
2515 |
msgstr ""
|
2516 |
|
2517 |
-
#: lib/wassupadmin.php:
|
2518 |
msgid "Filter items for"
|
2519 |
msgstr ""
|
2520 |
|
2521 |
-
#: lib/wassupadmin.php:
|
2522 |
msgid "Visits"
|
2523 |
msgstr ""
|
2524 |
|
2525 |
-
#: lib/wassupadmin.php:
|
2526 |
msgid "Pageviews"
|
2527 |
msgstr ""
|
2528 |
|
2529 |
-
#: lib/wassupadmin.php:
|
2530 |
msgid "Pages/Visits"
|
2531 |
msgstr ""
|
2532 |
|
2533 |
-
#: lib/wassupadmin.php:
|
2534 |
msgid "Spams"
|
2535 |
msgstr ""
|
2536 |
|
2537 |
-
#: lib/wassupadmin.php:
|
2538 |
msgid "Spam/Malware Options"
|
2539 |
msgstr ""
|
2540 |
|
2541 |
-
#: lib/wassupadmin.php:
|
2542 |
msgid "Enable Spam and Malware Check on Records"
|
2543 |
msgstr ""
|
2544 |
|
2545 |
-
#: lib/wassupadmin.php:
|
2546 |
msgid "Record attack/exploit attempts (libwww-perl agent)"
|
2547 |
msgstr ""
|
2548 |
|
2549 |
-
#: lib/wassupadmin.php:
|
2550 |
msgid "refresh screen"
|
2551 |
msgstr ""
|
2552 |
|
2553 |
-
#: lib/wassupadmin.php:
|
2554 |
#, php-format
|
2555 |
msgid "Auto refresh in %s seconds"
|
2556 |
msgstr ""
|
2557 |
|
2558 |
-
#: lib/wassupadmin.php:
|
2559 |
msgid "hide chart"
|
2560 |
msgstr ""
|
2561 |
|
2562 |
-
#: lib/wassupadmin.php:
|
2563 |
msgid "Hide the chart"
|
2564 |
msgstr ""
|
2565 |
|
2566 |
-
#: lib/wassupadmin.php:
|
2567 |
msgid "Hide chart"
|
2568 |
msgstr ""
|
2569 |
|
2570 |
-
#: lib/wassupadmin.php:
|
2571 |
msgid "show chart"
|
2572 |
msgstr ""
|
2573 |
|
2574 |
-
#: lib/wassupadmin.php:
|
2575 |
msgid "Show the chart"
|
2576 |
msgstr ""
|
2577 |
|
2578 |
-
#: lib/wassupadmin.php:
|
2579 |
msgid "Show chart"
|
2580 |
msgstr ""
|
2581 |
|
2582 |
-
#: lib/wassupadmin.php:
|
2583 |
#, php-format
|
2584 |
msgid "Top Stats for %s"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
-
#: lib/wassupadmin.php:
|
2588 |
msgid "Show top stats"
|
2589 |
msgstr ""
|
2590 |
|
2591 |
-
#: lib/wassupadmin.php:
|
2592 |
#, php-format
|
2593 |
msgid "Top stats for %s in popup"
|
2594 |
msgstr ""
|
2595 |
|
2596 |
-
#: lib/wassupadmin.php:
|
2597 |
#, php-format
|
2598 |
msgid "%s matches found for search"
|
2599 |
msgstr ""
|
2600 |
|
2601 |
-
#: lib/wassupadmin.php:
|
2602 |
#, php-format
|
2603 |
msgid "%s items marked for IP"
|
2604 |
msgstr ""
|
2605 |
|
2606 |
-
#: lib/wassupadmin.php:
|
2607 |
msgid "Filter by marked IP"
|
2608 |
msgstr ""
|
2609 |
|
2610 |
-
#: lib/wassupadmin.php:
|
2611 |
msgid "Records display interrupted."
|
2612 |
msgstr ""
|
2613 |
|
2614 |
-
#: lib/wassupadmin.php:
|
2615 |
msgid "Unable to display records."
|
2616 |
msgstr ""
|
2617 |
|
2618 |
-
#: lib/wassupadmin.php:
|
2619 |
msgid "FEEDREADER"
|
2620 |
msgstr ""
|
2621 |
|
2622 |
-
#: lib/wassupadmin.php:
|
2623 |
msgid "SUBSCRIBER(S)"
|
2624 |
msgstr ""
|
2625 |
|
2626 |
-
#: lib/wassupadmin.php:
|
2627 |
msgid "SPIDER"
|
2628 |
msgstr ""
|
2629 |
|
2630 |
-
#: lib/wassupadmin.php:
|
2631 |
msgid "delete"
|
2632 |
msgstr ""
|
2633 |
|
2634 |
-
#: lib/wassupadmin.php:
|
2635 |
msgid "Delete ALL marked records with this IP"
|
2636 |
msgstr ""
|
2637 |
|
2638 |
-
#: lib/wassupadmin.php:
|
2639 |
msgid "unmark"
|
2640 |
msgstr ""
|
2641 |
|
2642 |
-
#: lib/wassupadmin.php:
|
2643 |
msgid "UnMark IP"
|
2644 |
msgstr ""
|
2645 |
|
2646 |
-
#: lib/wassupadmin.php:
|
2647 |
msgid "Delete this record"
|
2648 |
msgstr ""
|
2649 |
|
2650 |
-
#: lib/wassupadmin.php:
|
2651 |
msgid "mark"
|
2652 |
msgstr ""
|
2653 |
|
2654 |
-
#: lib/wassupadmin.php:
|
2655 |
msgid "Mark IP"
|
2656 |
msgstr ""
|
2657 |
|
2658 |
-
#: lib/wassupadmin.php:
|
2659 |
msgid "SEARCH ENGINE"
|
2660 |
msgstr ""
|
2661 |
|
2662 |
-
#: lib/wassupadmin.php:
|
2663 |
msgid "page"
|
2664 |
msgstr ""
|
2665 |
|
2666 |
-
#: lib/wassupadmin.php:
|
2667 |
msgid "KEYWORDS"
|
2668 |
msgstr ""
|
2669 |
|
2670 |
-
#: lib/wassupadmin.php:
|
2671 |
msgid "Probably SPAM!"
|
2672 |
msgstr ""
|
2673 |
|
2674 |
-
#: lib/wassupadmin.php:
|
2675 |
msgid "Referer Spam"
|
2676 |
msgstr ""
|
2677 |
|
2678 |
-
#: lib/wassupadmin.php:
|
2679 |
msgid "Comment Spam"
|
2680 |
msgstr ""
|
2681 |
|
2682 |
-
#: lib/wassupadmin.php:
|
2683 |
msgid "Probably hack/malware attempt!"
|
2684 |
msgstr ""
|
2685 |
|
2686 |
-
#: lib/wassupadmin.php:
|
2687 |
msgid "BROWSER"
|
2688 |
msgstr ""
|
2689 |
|
2690 |
-
#: lib/wassupadmin.php:
|
2691 |
msgid "RESOLUTION"
|
2692 |
msgstr ""
|
2693 |
|
2694 |
-
#: lib/wassupadmin.php:
|
2695 |
-
msgid "
|
2696 |
msgstr ""
|
2697 |
|
2698 |
-
#: lib/wassupadmin.php:
|
2699 |
-
msgid "
|
2700 |
msgstr ""
|
2701 |
|
2702 |
-
#: lib/wassupadmin.php:
|
2703 |
#, php-format
|
2704 |
msgid "Invalid page request %s"
|
2705 |
msgstr ""
|
2706 |
|
2707 |
-
#: lib/wassupadmin.php:
|
2708 |
msgid "Stats"
|
2709 |
msgstr ""
|
2710 |
|
2711 |
-
#: lib/wassupadmin.php:
|
2712 |
msgid "More"
|
2713 |
msgstr ""
|
2714 |
|
2715 |
-
#: lib/wassupadmin.php:
|
2716 |
-
#: lib/compat-lib/
|
|
|
2717 |
msgid "visitor stats chart"
|
2718 |
msgstr ""
|
2719 |
|
2720 |
-
#: lib/wassupadmin.php:
|
2721 |
msgid "More Stats"
|
2722 |
msgstr ""
|
2723 |
|
2724 |
-
#: lib/wassupadmin.php:
|
2725 |
msgid "Registered users"
|
2726 |
msgstr ""
|
2727 |
|
2728 |
-
#: lib/wassupadmin.php:
|
2729 |
-
#:
|
2730 |
msgid "Visitor online"
|
2731 |
msgstr ""
|
2732 |
|
2733 |
-
#: lib/wassupadmin.php:
|
2734 |
msgid "No online data!"
|
2735 |
msgstr ""
|
2736 |
|
2737 |
-
#: lib/wassupadmin.php:
|
2738 |
-
#:
|
2739 |
msgid "powered by"
|
2740 |
msgstr ""
|
2741 |
|
2742 |
-
#: lib/wassupadmin.php:
|
2743 |
-
#:
|
2744 |
msgid "Real Time Visitors Tracking"
|
2745 |
msgstr ""
|
2746 |
|
2747 |
-
#: lib/compat-lib/compat_widget.php:
|
2748 |
-
|
|
|
|
|
|
|
|
|
2749 |
msgid "Widget style options"
|
2750 |
msgstr ""
|
2751 |
|
2752 |
-
#:
|
2753 |
-
#:
|
2754 |
#, php-format
|
2755 |
msgid "Class attribute for %s list:"
|
2756 |
msgstr ""
|
2757 |
|
2758 |
-
#:
|
2759 |
-
#:
|
2760 |
msgid "Max. chars to display from left"
|
2761 |
msgstr ""
|
2762 |
|
2763 |
-
#:
|
2764 |
-
#:
|
2765 |
msgid "enter \"0\" for theme default/line wrap of long texts"
|
2766 |
msgstr ""
|
2767 |
|
2768 |
-
#: widgets/widgets.php:
|
2769 |
-
msgid "base widget"
|
2770 |
-
msgstr ""
|
2771 |
-
|
2772 |
-
#: widgets/widgets.php:201
|
2773 |
msgid "Online"
|
2774 |
msgstr ""
|
2775 |
|
2776 |
-
#: widgets/widgets.php:
|
2777 |
msgid "Show counts of your site's visitors who are currently online."
|
2778 |
msgstr ""
|
2779 |
|
2780 |
-
#: widgets/widgets.php:
|
2781 |
msgid "Online Now"
|
2782 |
msgstr ""
|
2783 |
|
2784 |
-
#: widgets/widgets.php:
|
2785 |
msgid "Show online counts for:"
|
2786 |
msgstr ""
|
2787 |
|
2788 |
-
#: widgets/widgets.php:
|
2789 |
msgid "All current visitors"
|
2790 |
msgstr ""
|
2791 |
|
2792 |
-
#: widgets/widgets.php:
|
2793 |
msgid "Logged-in users"
|
2794 |
msgstr ""
|
2795 |
|
2796 |
-
#: widgets/widgets.php:
|
2797 |
msgid "Regular visitors"
|
2798 |
msgstr ""
|
2799 |
|
2800 |
-
#: widgets/widgets.php:
|
2801 |
msgid "Others"
|
2802 |
msgstr ""
|
2803 |
|
2804 |
-
#: widgets/widgets.php:
|
2805 |
msgid "Online Users Details"
|
2806 |
msgstr ""
|
2807 |
|
2808 |
-
#: widgets/widgets.php:
|
2809 |
msgid "Show online usernames to registered users"
|
2810 |
msgstr ""
|
2811 |
|
2812 |
-
#: widgets/widgets.php:
|
2813 |
msgid "Show country flags of users online"
|
2814 |
msgstr ""
|
2815 |
|
2816 |
-
#: widgets/widgets.php:
|
2817 |
msgid "online counts are automatically cached for 1 minute."
|
2818 |
msgstr ""
|
2819 |
|
2820 |
-
#: widgets/widgets.php:
|
2821 |
msgid "empty results are not displayed."
|
2822 |
msgstr ""
|
2823 |
|
2824 |
-
#: widgets/widgets.php:
|
2825 |
msgid "Top Stats"
|
2826 |
msgstr ""
|
2827 |
|
2828 |
-
#: widgets/widgets.php:
|
2829 |
msgid ""
|
2830 |
"List your site's most popular or trending items from Wassup's latest stats "
|
2831 |
"data."
|
2832 |
msgstr ""
|
2833 |
|
2834 |
-
#: widgets/widgets.php:
|
2835 |
msgid "of first checked item below"
|
2836 |
msgstr ""
|
2837 |
|
2838 |
-
#: widgets/widgets.php:
|
2839 |
msgid "List Top Results for"
|
2840 |
msgstr ""
|
2841 |
|
2842 |
-
#: widgets/widgets.php:
|
2843 |
msgid "Stat item"
|
2844 |
msgstr ""
|
2845 |
|
2846 |
-
#: widgets/widgets.php:
|
2847 |
msgid "max limit"
|
2848 |
msgstr ""
|
2849 |
|
2850 |
-
#: widgets/widgets.php:
|
2851 |
msgid "Titles of posts and pages"
|
2852 |
msgstr ""
|
2853 |
|
2854 |
-
#: widgets/widgets.php:
|
2855 |
msgid "Latest articles"
|
2856 |
msgstr ""
|
2857 |
|
2858 |
-
#: widgets/widgets.php:
|
2859 |
msgid "Search engine searches"
|
2860 |
msgstr ""
|
2861 |
|
2862 |
-
#: widgets/widgets.php:
|
2863 |
msgid "Latest searches"
|
2864 |
msgstr ""
|
2865 |
|
2866 |
-
#: widgets/widgets.php:
|
2867 |
msgid "External links that generated referrals to your site"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
-
#: widgets/widgets.php:
|
2871 |
msgid "Latest referrers"
|
2872 |
msgstr ""
|
2873 |
|
2874 |
-
#: widgets/widgets.php:
|
2875 |
msgid "Latest URL requests"
|
2876 |
msgstr ""
|
2877 |
|
2878 |
-
#: widgets/widgets.php:
|
2879 |
msgid "Client browser software"
|
2880 |
msgstr ""
|
2881 |
|
2882 |
-
#: widgets/widgets.php:
|
2883 |
msgid "Latest browsers"
|
2884 |
msgstr ""
|
2885 |
|
2886 |
-
#: widgets/widgets.php:
|
2887 |
msgid "Client device/operating software"
|
2888 |
msgstr ""
|
2889 |
|
2890 |
-
#: widgets/widgets.php:
|
2891 |
msgid "Latest OS"
|
2892 |
msgstr ""
|
2893 |
|
2894 |
-
#: widgets/widgets.php:
|
2895 |
msgid "Visitors country/language"
|
2896 |
msgstr ""
|
2897 |
|
2898 |
-
#: widgets/widgets.php:
|
2899 |
msgid "Latest locale"
|
2900 |
msgstr ""
|
2901 |
|
2902 |
-
#: widgets/widgets.php:
|
2903 |
msgid "Show counts for each item"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
-
#: widgets/widgets.php:
|
2907 |
msgid "Statistics timeframe"
|
2908 |
msgstr ""
|
2909 |
|
2910 |
-
#: widgets/widgets.php:
|
2911 |
msgid ""
|
2912 |
"select 1-30 days for latest top results, 1-12 hours for trending results"
|
2913 |
msgstr ""
|
2914 |
|
2915 |
-
#: widgets/widgets.php:
|
2916 |
msgid "Refresh statistics every:"
|
2917 |
msgstr ""
|
2918 |
|
2919 |
-
#: widgets/widgets.php:
|
2920 |
msgid "known spammers and spiders are excluded from results."
|
2921 |
msgstr ""
|
2922 |
|
2923 |
-
#: widgets/widgets.php:
|
2924 |
-
msgid "
|
2925 |
msgstr ""
|
2926 |
|
2927 |
#: widgets/widget_functions.php:240
|
2928 |
msgid "Other"
|
2929 |
msgstr ""
|
2930 |
|
2931 |
-
#: widgets/widget_functions.php:
|
2932 |
#, php-format
|
2933 |
msgid "%s articles"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
-
#: widgets/widget_functions.php:
|
2937 |
#, php-format
|
2938 |
msgid "%s searches"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
-
#: widgets/widget_functions.php:
|
2942 |
#, php-format
|
2943 |
msgid "%s referrers"
|
2944 |
msgstr ""
|
2945 |
|
2946 |
-
#: widgets/widget_functions.php:
|
2947 |
#, php-format
|
2948 |
msgid "%s requests"
|
2949 |
msgstr ""
|
2950 |
|
2951 |
-
#: widgets/widget_functions.php:
|
2952 |
#, php-format
|
2953 |
msgid "%s browsers"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
-
#: widgets/widget_functions.php:
|
2957 |
#, php-format
|
2958 |
msgid "%s OS"
|
2959 |
msgstr ""
|
2960 |
|
2961 |
-
#: widgets/widget_functions.php:
|
|
|
|
|
|
|
|
|
2962 |
#, php-format
|
2963 |
msgid "%s locale"
|
2964 |
msgstr ""
|
1 |
# LANGUAGE translation for WassUp Real-time Analytics plugin
|
2 |
+
# Copyright (C) 2009-2017
|
3 |
# This file is distributed under the same license as WassUp plugin.
|
4 |
# Michele Marcucci <michele(at)befree.it>, 2009.
|
5 |
#
|
6 |
#, fuzzy
|
7 |
msgid ""
|
8 |
msgstr ""
|
9 |
+
"Project-Id-Version: WassUp 1.9.4\n"
|
10 |
"Report-Msgid-Bugs-To: michele@befree.it\n"
|
11 |
+
"POT-Creation-Date: 2017-07-08 16:29-0500\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:175
|
21 |
#, php-format
|
22 |
msgid "File %s does not exist!"
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: wassup.php:189
|
26 |
msgid "Sorry! \"Network Activation\" is DISABLED for subdomain networks."
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: wassup.php:190
|
30 |
#, php-format
|
31 |
msgid "%s must be activated on each subdomain site separately."
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: wassup.php:191
|
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:192
|
41 |
msgid "Back to Plugins"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: wassup.php:255 lib/upgrade.php:723
|
45 |
msgid "Database created/upgraded successfully"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: wassup.php:257
|
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:261
|
55 |
msgid "activation successful"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: wassup.php:263
|
59 |
msgid "activation successful. No upgrade necessary."
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: wassup.php:290
|
63 |
#, php-format
|
64 |
msgid "%s: database upgrade failed!"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: wassup.php:302
|
68 |
#, php-format
|
69 |
msgid "%s: plugin install/upgrade failed!"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: wassup.php:483 wassup.php:486 lib/action.php:53
|
73 |
msgid "Bad request!"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: wassup.php:691
|
77 |
msgid "Export ERROR: nonce failure!"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: wassup.php:694
|
81 |
msgid "Export ERROR: login required!"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: wassup.php:731
|
85 |
+
msgid "Too much data for Wassup export! Use a separate MySQL Db tool instead."
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: wassup.php:751
|
89 |
msgid "ERROR: Nothing to Export."
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: wassup.php:1069 wassup.php:3342 lib/uadetector.class.php:600
|
93 |
#: lib/uadetector.class.php:1431
|
94 |
msgid "Unknown Spider"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: wassup.php:1070
|
98 |
msgid "Unknown Browser"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: wassup.php:1702
|
102 |
msgid "Spoofer bot"
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: wassup.php:2121
|
106 |
#, php-format
|
107 |
msgid "%s WassUp Plugin table has reached maximum size!"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: wassup.php:2121
|
111 |
msgid "ALERT"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: wassup.php:2122
|
115 |
msgid "Hi"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: wassup.php:2122
|
119 |
msgid ""
|
120 |
"you have received this email because your WassUp Database table at your "
|
121 |
"Wordpress blog"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: wassup.php:2122
|
125 |
msgid "has reached the maximum value set in the options menu"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: wassup.php:2123
|
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:2123
|
135 |
msgid "This alert now will be removed and you will be able to set a new one"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: wassup.php:2124
|
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:2124
|
145 |
msgid "Have a nice day!"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: wassup.php:2365 wassup.php:2809
|
149 |
msgid "encrypted search"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: wassup.php:3329 wassup.php:3336
|
153 |
msgid "Feed Reader"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: wassup.php:3337
|
157 |
msgid "feed reader"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: wassup.php:3812
|
161 |
msgid "timestamp"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: wassup.php:3813
|
165 |
msgid "If above timestamp is not current time, this page is cached"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: wassup.php:3994
|
169 |
msgid "Visitors Online"
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: wassup.php:4012 widgets/widgets.php:143 widgets/widgets.php:334
|
173 |
+
#: widgets/widgets.php:548 lib/compat-lib/compat_widget.php:152
|
174 |
msgid "No Data"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: lib/action.php:44 lib/action.php:60
|
178 |
+
msgid "Missing or invalid parameter!"
|
179 |
msgstr ""
|
180 |
|
181 |
#: lib/action.php:56
|
182 |
msgid "Login required!"
|
183 |
msgstr ""
|
184 |
|
|
|
|
|
|
|
|
|
185 |
#: lib/action.php:70
|
186 |
+
msgid "invalid parameter!"
|
187 |
msgstr ""
|
188 |
|
189 |
#: lib/action.php:74
|
190 |
msgid "Nothing to do"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: lib/action.php:89
|
194 |
msgid "An error occurred during delete of"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: lib/action.php:94 lib/action.php:105 lib/action.php:108 lib/action.php:111
|
198 |
msgid "Error"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: lib/action.php:98
|
202 |
#, php-format
|
203 |
msgid "%d records deleted!"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: lib/action.php:155
|
207 |
msgid "ERROR: bad date parameter"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: lib/action.php:208
|
211 |
msgid "Error: Nothing to do!"
|
212 |
msgstr ""
|
213 |
|
227 |
msgid "Your Akismet API key is not valid."
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: lib/compatibility.php:96
|
231 |
msgid "Sorry, WassUp requires WordPress 2.2 or higher to work"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: lib/compatibility.php:103
|
235 |
msgid "WARNING! WassUp's backward compatibility modules are missing."
|
236 |
msgstr ""
|
237 |
|
238 |
+
#: lib/compatibility.php:104 lib/compatibility.php:113
|
239 |
#, php-format
|
240 |
msgid ""
|
241 |
"Download and install the full version of Wassup with compatibility library "
|
242 |
"included directly from %s."
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: lib/compatibility.php:109
|
246 |
msgid ""
|
247 |
"Sorry, WassUp requires WordPress 3.1 or higher to work in multisite setups"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: lib/compatibility.php:112
|
251 |
+
msgid "WARNING! WassUp's PHP compatibility modules are missing."
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: lib/faq.php:36
|
255 |
+
msgid "How do I add WassUp's chart to my admin dashboard?"
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: lib/faq.php:37
|
259 |
#, php-format
|
260 |
+
msgid ""
|
261 |
+
"Check the box for \"Enable widget/small chart in admin dashboard\" under %s "
|
262 |
+
"tab."
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: lib/faq.php:37 lib/faq.php:43 lib/faq.php:47 lib/faq.php:49 lib/faq.php:51
|
266 |
+
#: lib/faq.php:53 lib/faq.php:54 lib/faq.php:57 lib/faq.php:58 lib/faq.php:59
|
267 |
+
#: lib/faq.php:64 lib/faq.php:70 lib/faq.php:72 lib/faq.php:76 lib/faq.php:80
|
268 |
+
#: lib/faq.php:86 lib/faq.php:87 lib/wassupadmin.php:525
|
269 |
+
#: lib/wassupadmin.php:984
|
270 |
+
msgid "Options"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: lib/faq.php:37 lib/faq.php:43 lib/faq.php:47 lib/faq.php:51 lib/faq.php:53
|
274 |
+
#: lib/faq.php:54 lib/faq.php:57 lib/faq.php:58 lib/faq.php:76 lib/faq.php:80
|
275 |
+
#: lib/settings.php:147
|
276 |
+
msgid "General Setup"
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: lib/faq.php:38
|
280 |
+
msgid "How do I display WassUp widgets on my site?"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: lib/faq.php:39
|
284 |
+
msgid ""
|
285 |
+
"From Wordpress widgets panel, drag the \"WassUp Online\" widget or the "
|
286 |
+
"\"Wassup Top Stats\" widget from the list of available widgets on the left "
|
287 |
+
"into your theme's \"Sidebar\" or \"Footer\" area on the right or use the "
|
288 |
+
"Customizer to add Wassup widgets interactively."
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: lib/faq.php:40
|
292 |
+
msgid ""
|
293 |
+
"My Wordpress theme is not widget ready. Is it possible to display WassUp "
|
294 |
+
"widgets on my site?"
|
295 |
msgstr ""
|
296 |
|
297 |
+
#: lib/faq.php:41
|
298 |
+
msgid ""
|
299 |
+
"Yes. Insert the template tag \"wassup_sidebar()\" into your theme's "
|
300 |
+
"\"sidebar.php\" file to display Wassup widgets as a single combined widget "
|
301 |
+
"on your site."
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: lib/faq.php:42
|
305 |
+
msgid "How do I view the real-time visitor geolocation map in WassUp?"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: lib/faq.php:43
|
309 |
+
#, php-format
|
310 |
+
msgid ""
|
311 |
+
"Check the box for \"Display a GEO IP Map in spy visitors view\" in %s and "
|
312 |
+
"save, then navigate to %s panel to see the map."
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: lib/faq.php:43 lib/wassupadmin.php:522 lib/wassupadmin.php:627
|
316 |
+
#: lib/wassupadmin.php:981
|
317 |
+
msgid "SPY Visitors"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: lib/faq.php:44
|
321 |
+
msgid ""
|
322 |
+
"The map has vanished and I get a message like: \"Oops, something went wrong"
|
323 |
+
"\" or \"Google has disabled use of the Maps API for this application\". How "
|
324 |
+
"do I fix this?"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: lib/faq.php:46
|
328 |
+
#, php-format
|
329 |
+
msgid ""
|
330 |
+
"Try upgrading to the latest version of Wassup, or go to Wassup-Options and "
|
331 |
+
"click the Reset-to-Default button if you have already upgraded, or sign up "
|
332 |
+
"for your own %s and enter it under \"Spy Visitors settings\" in %s tab."
|
333 |
msgstr ""
|
334 |
|
335 |
+
#: lib/faq.php:48
|
336 |
+
msgid "How do I exclude a visitor from being recorded?"
|
|
|
|
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: lib/faq.php:49
|
340 |
+
#, php-format
|
341 |
+
msgid ""
|
342 |
+
"Navigate to %s tab and enter a visitor's username, IP address, or hostname "
|
343 |
+
"into the appropriate text area for that \"Recording Exclusion\" type."
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: lib/faq.php:49 lib/faq.php:72 lib/settings.php:148
|
347 |
+
msgid "Filters & Exclusions"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: lib/faq.php:50
|
351 |
+
msgid ""
|
352 |
+
"How do I stop (temporarily) WassUp from recording new visits on my site?"
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: lib/faq.php:51
|
356 |
+
#, php-format
|
357 |
+
msgid "Uncheck the box for \"Enable statistics recording\" under %s tab."
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: lib/faq.php:52
|
361 |
+
msgid ""
|
362 |
+
"In Wordpress multisite, how do I stop (temporarily) WassUp from recording "
|
363 |
+
"new visits on all sites in the network?"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: lib/faq.php:53
|
367 |
+
#, php-format
|
368 |
+
msgid ""
|
369 |
+
"If plugin is \"network activated\", login as network admin, go to the "
|
370 |
+
"Network admin dashboard, navigate to %s tab and Uncheck the box for \"Enable "
|
371 |
+
"Statistics Recording for network\" and save."
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: lib/faq.php:54
|
375 |
+
#, php-format
|
376 |
+
msgid ""
|
377 |
+
"If plugin is NOT \"network activated\", login as network admin, go to the "
|
378 |
+
"main site/parent domain admin dashboard, navigate to %s tab, then Uncheck "
|
379 |
+
"the box for \"Enable Statistics Recording for network\" and save."
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: lib/faq.php:56
|
383 |
+
msgid ""
|
384 |
+
"No data is being displayed; or \"Visitor Details\" panel show 0 records for "
|
385 |
+
"the last 24 hours. How do I fix this?"
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: lib/faq.php:57
|
389 |
+
#, php-format
|
390 |
+
msgid ""
|
391 |
+
"Check the box for \"Enable statistics recording\" setting under %s tab and "
|
392 |
+
"save."
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: lib/faq.php:58
|
396 |
+
#, php-format
|
397 |
+
msgid "Click the [Reset to Default] button under %s tab."
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: lib/faq.php:59
|
401 |
+
#, php-format
|
402 |
+
msgid ""
|
403 |
+
"Navigate to %s tab and uncheck the \"MySQL Delayed Insert\" setting and save."
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: lib/faq.php:59 lib/faq.php:64 lib/faq.php:70
|
407 |
+
msgid "Manage File & Data"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: lib/faq.php:60
|
411 |
+
msgid "Deactivate and Re-activate Wassup from Wordpress Plugins panel."
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: lib/faq.php:61
|
415 |
+
#, php-format
|
416 |
+
msgid ""
|
417 |
+
"If you have access to MySql/phpMyAdmin on your host server, run the MySql "
|
418 |
+
"command %s to repair and release any locks on wassup table. Note that wassup "
|
419 |
+
"table name may be different in other Wordpress setups."
|
420 |
msgstr ""
|
421 |
|
422 |
+
#: lib/faq.php:62
|
423 |
+
msgid ""
|
424 |
+
"As a last resort, uninstall WassUp cleanly (delete data and files) and "
|
425 |
+
"reinstall it."
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: lib/faq.php:63
|
429 |
+
msgid ""
|
430 |
+
"My popular web site is hosted on a shared server with restrictive database "
|
431 |
+
"size limits. How do I prevent WassUp's table from growing too big for my "
|
432 |
+
"allocated quota?"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: lib/faq.php:64
|
436 |
+
#, php-format
|
437 |
+
msgid ""
|
438 |
+
"Navigate to %s tab and enable the setting for \"Auto Delete\" of old records "
|
439 |
+
"and/or check the box to receive an email alert when the table size limit is "
|
440 |
+
"exceeded."
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: lib/faq.php:65
|
444 |
+
msgid ""
|
445 |
+
"WassUp visitor counts are much lower than actual for my website. Why is "
|
446 |
+
"there a discrepancy and how do I fix it?"
|
447 |
msgstr ""
|
448 |
|
449 |
+
#: lib/faq.php:66
|
450 |
+
msgid ""
|
451 |
+
"Low visitor count is likely caused by page caching on your website. WassUp "
|
452 |
+
"is incompatible with static page caching plugins such as WP Supercache, WP "
|
453 |
+
"Cache, and Hyper Cache. To fix, uninstall your cache plugin or switch to a "
|
454 |
+
"different (javascript-based) statistics plugin."
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: lib/faq.php:67
|
458 |
+
msgid "Is there any caching plugin that works with WassUp?"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: lib/faq.php:68
|
462 |
+
#, php-format
|
463 |
+
msgid ""
|
464 |
+
"There are no known caching plugins that are 100% compatible with WassUp at "
|
465 |
+
"this time."
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: lib/faq.php:69
|
469 |
+
msgid "How can I make Wassup run faster?"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: lib/faq.php:70
|
473 |
+
#, php-format
|
474 |
+
msgid ""
|
475 |
+
"Keep Wassup table size small by setting automatic delete of old records or "
|
476 |
+
"do manual delete periodically under %s tab."
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: lib/faq.php:71
|
480 |
+
msgid ""
|
481 |
+
"If using the \"Top Stats\" widget on your site, set refresh frequency to 15 "
|
482 |
+
"minutes or higher."
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: lib/faq.php:72
|
486 |
+
#, php-format
|
487 |
+
msgid ""
|
488 |
+
"Reduce the number of recording exclusions (by ip/hostname/username/url) "
|
489 |
+
"under %s tab."
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: lib/faq.php:75
|
493 |
+
#, php-format
|
494 |
+
msgid ""
|
495 |
+
"Delete the file(s) %s from the plugin subfolder 'lib' to stop Wassup from "
|
496 |
+
"doing remote server queries for spam identification."
|
|
|
|
|
|
|
|
|
|
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: lib/faq.php:76
|
500 |
#, php-format
|
501 |
+
msgid ""
|
502 |
+
"As a last resort, stop all spam/malware detection on new hits by unchecking "
|
503 |
+
"\"Enable Spam and malware detection on records\" under %s tab."
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: lib/faq.php:77
|
507 |
+
msgid ""
|
508 |
+
"Why does WassUp stats sometimes show more page views than actual pages "
|
509 |
+
"clicked by a person?"
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: lib/faq.php:78
|
513 |
+
msgid ""
|
514 |
+
"\"Phantom\" page views can occur when a user's browser does automatic feed "
|
515 |
+
"retrieval, link pre-fetching, a page refresh, or automatically adds your "
|
516 |
+
"website to it's \"Top sites\" window (Safari). WassUp tracks these because "
|
517 |
+
"they are valid requests from the browser and are sometimes indistinguishable "
|
518 |
+
"from user link clicks."
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: lib/faq.php:79
|
522 |
+
msgid "How do I upgrade WassUp safely when my site has frequent visitors?"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: lib/faq.php:80
|
526 |
+
#, php-format
|
527 |
+
msgid ""
|
528 |
+
"To upgrade WassUp when your site is busy, you must first disable statistics "
|
529 |
+
"recording manually under %s tab, then do the plugin upgrade, and afterwards "
|
530 |
+
"re-enable recording manually when the upgrade is complete and the plugin is "
|
531 |
+
"active."
|
532 |
msgstr ""
|
533 |
|
534 |
+
#: lib/faq.php:81
|
535 |
+
msgid "An unspecified error occurred during plugin upgrade. What do I do next?"
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: lib/faq.php:82
|
539 |
+
msgid ""
|
540 |
+
"Wait a few minutes. Do NOT re-attempt to upgrade nor try to activate the "
|
541 |
+
"plugin again! An activation error with no explanation is probably due to "
|
542 |
+
"your browser timing out, not an upgrade failure. WassUp continues it's "
|
543 |
+
"upgrade in the background and will activate automatically when it is done. "
|
544 |
+
"After a few minutes (5-10) has passed, revisit Wordpress admin Plugins panel "
|
545 |
+
"and verify that Wassup plugin has activated."
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: lib/faq.php:83
|
549 |
+
msgid "How do I uninstall WassUp cleanly?"
|
550 |
msgstr ""
|
551 |
|
552 |
+
#: lib/faq.php:84
|
553 |
+
msgid ""
|
554 |
+
"From a single Wordpress site: navigate to Wordpress Plugins panel and "
|
555 |
+
"deactivate WassUp plugin. Then, on the same page, click the \"delete\" link "
|
556 |
+
"below WassUp name. This deletes both data and files permanently."
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: lib/faq.php:85
|
560 |
+
msgid ""
|
561 |
+
"From Wordpress multisite Network admin panel: navigate to Plugins panel and "
|
562 |
+
"deactivate WassUp plugin. If the plugin is not \"network activated\", "
|
563 |
+
"navigate to the main site/parent domain Plugins panel and deactivate Wassup "
|
564 |
+
"plugin there, then return to Network admin Plugins panel. Click the \"delete"
|
565 |
+
"\" link below WassUp name. This deletes both data and files permanently from "
|
566 |
+
"the main site/parent domain and deletes Wassup data from all the subsites in "
|
567 |
+
"the network."
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: lib/faq.php:86
|
|
|
571 |
#, php-format
|
572 |
+
msgid ""
|
573 |
+
"From a subsite in Wordpress multisite: navigate to %s tab and check the box "
|
574 |
+
"for \"Permanently remove WassUp data and settings\" and save. Next, go to "
|
575 |
+
"the subsite's Plugins panel and deactivate WassUp plugin. This deletes the "
|
576 |
+
"subsite's data permanently. No files are deleted (not needed)."
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: lib/faq.php:86 lib/faq.php:87 lib/settings.php:152
|
580 |
+
msgid "Uninstall"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: lib/faq.php:87
|
584 |
+
#, php-format
|
585 |
+
msgid ""
|
586 |
+
"From a Wordpress 2.x site: navigate to %s tab and check the box for "
|
587 |
+
"\"Permanently remove WassUp data and settings\" and save. Next, go to "
|
588 |
+
"Wordpress Plugins panel and deactivate WassUp plugin. This deletes the data "
|
589 |
+
"permanently. To delete the plugin files from Wordpress 2.x, use an ftp "
|
590 |
+
"client software on your PC or login to your host server's \"cpanel\" and use "
|
591 |
+
"\"File Manager\" to delete the folder \"wassup\" from the %s directory on "
|
592 |
+
"your host server."
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: lib/faq.php:89
|
596 |
#, php-format
|
597 |
+
msgid "Visit the %s to find more answers to your WassUp questions."
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: lib/faq.php:89
|
601 |
+
msgid "Plugin Forum"
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: lib/main.php:56 lib/settings.php:314 lib/settings.php:374
|
605 |
+
#: lib/settings.php:1021 lib/settings.php:1037 lib/settings.php:1059
|
606 |
+
msgid "Next"
|
607 |
msgstr ""
|
608 |
|
609 |
+
#: lib/main.php:58
|
610 |
+
msgid "Previous"
|
611 |
msgstr ""
|
612 |
|
613 |
+
#: lib/main.php:112
|
614 |
+
#, php-format
|
615 |
+
msgid "You must specify the %s"
|
616 |
msgstr ""
|
617 |
|
618 |
+
#: lib/main.php:112
|
619 |
+
msgid "number of pages"
|
620 |
msgstr ""
|
621 |
|
622 |
+
#: lib/main.php:116
|
623 |
+
#, php-format
|
624 |
+
msgid "You must specify the %s to show per page"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: lib/main.php:116
|
628 |
+
msgid "limit of items"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: lib/main.php:165
|
632 |
+
msgid "Pages"
|
633 |
+
msgstr ""
|
634 |
+
|
635 |
+
#: lib/main.php:409
|
636 |
+
msgid "Raw data"
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: lib/main.php:410
|
640 |
+
msgid "Visitor type"
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: lib/main.php:422 widgets/widget_functions.php:210
|
644 |
+
msgid "Logged-in user"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: lib/main.php:424
|
648 |
+
msgid "Spammer/Hacker"
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: lib/main.php:426 lib/main.php:591
|
652 |
+
msgid "Spammer"
|
653 |
+
msgstr ""
|
654 |
+
|
655 |
+
#: lib/main.php:428 lib/main.php:611 widgets/widget_functions.php:220
|
656 |
+
msgid "Comment author"
|
657 |
+
msgstr ""
|
658 |
+
|
659 |
+
#: lib/main.php:430 lib/main.php:481 lib/main.php:483
|
660 |
+
msgid "Feed"
|
661 |
+
msgstr ""
|
662 |
+
|
663 |
+
#: lib/main.php:432 lib/main.php:486 lib/main.php:598 lib/wassup.class.php:480
|
664 |
+
#: lib/wassup.class.php:536 lib/compat-lib/compat_wassup.class.php:482
|
665 |
+
#: lib/compat-lib/compat_wassup.class.php:538
|
666 |
+
msgid "Spider"
|
667 |
+
msgstr ""
|
668 |
+
|
669 |
+
#: lib/main.php:434 lib/main.php:570 widgets/widget_functions.php:230
|
670 |
+
msgid "Regular visitor"
|
671 |
+
msgstr ""
|
672 |
+
|
673 |
+
#: lib/main.php:437
|
674 |
+
msgid "IP"
|
675 |
+
msgstr ""
|
676 |
+
|
677 |
+
#: lib/main.php:438 lib/wassupadmin.php:1883
|
678 |
+
msgid "Hostname"
|
679 |
+
msgstr ""
|
680 |
+
|
681 |
+
#: lib/main.php:439
|
682 |
+
msgid "Url Requested"
|
683 |
+
msgstr ""
|
684 |
+
|
685 |
+
#: lib/main.php:446
|
686 |
+
msgid "Post/page ID"
|
687 |
+
msgstr ""
|
688 |
+
|
689 |
+
#: lib/main.php:450
|
690 |
+
msgid "none or deleted post"
|
691 |
+
msgstr ""
|
692 |
+
|
693 |
+
#: lib/main.php:452 widgets/widgets.php:97 widgets/widgets.php:228
|
694 |
+
#: widgets/widgets.php:402 lib/compat-lib/compat_widget.php:103
|
695 |
+
msgid "Title"
|
696 |
+
msgstr ""
|
697 |
+
|
698 |
+
#: lib/main.php:454 lib/wassupadmin.php:1875 lib/wassupadmin.php:2225
|
699 |
+
#: lib/compat-lib/compat_wassup.class.php:2926
|
700 |
+
msgid "Referrer"
|
701 |
+
msgstr ""
|
702 |
+
|
703 |
+
#: lib/main.php:457
|
704 |
+
msgid "Search Engine"
|
705 |
+
msgstr ""
|
706 |
+
|
707 |
+
#: lib/main.php:458 lib/wassupadmin.php:195 lib/wassupadmin.php:198
|
708 |
+
#: lib/wassupadmin.php:1677 lib/wassupadmin.php:1709
|
709 |
+
msgid "Search"
|
710 |
+
msgstr ""
|
711 |
+
|
712 |
+
#: lib/main.php:459
|
713 |
+
msgid "Page"
|
714 |
+
msgstr ""
|
715 |
+
|
716 |
+
#: lib/main.php:461 lib/wassupadmin.php:1952
|
717 |
+
msgid "User Agent"
|
718 |
+
msgstr ""
|
719 |
+
|
720 |
+
#: lib/main.php:464
|
721 |
+
msgid "Browser"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: lib/main.php:466 lib/wassupadmin.php:1973
|
725 |
+
msgid "OS"
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: lib/main.php:467
|
729 |
+
msgid "Locale/Language"
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: lib/main.php:468
|
733 |
+
msgid "Screen Resolution"
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: lib/main.php:471
|
737 |
+
msgid "Username"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: lib/main.php:475
|
741 |
+
msgid "Comment Author"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: lib/main.php:489 lib/wassup.class.php:482 lib/wassup.class.php:537
|
745 |
+
#: lib/wassupadmin.php:1937 lib/compat-lib/compat_wassup.class.php:484
|
746 |
+
#: lib/compat-lib/compat_wassup.class.php:539
|
747 |
+
msgid "Spam"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: lib/main.php:490
|
751 |
+
msgid "comment spam"
|
752 |
+
msgstr ""
|
753 |
+
|
754 |
+
#: lib/main.php:491
|
755 |
+
msgid "referrer spam"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: lib/main.php:492
|
759 |
+
msgid "hack/malware attempt"
|
760 |
+
msgstr ""
|
761 |
+
|
762 |
+
#: lib/main.php:493
|
763 |
+
msgid "not spam"
|
764 |
+
msgstr ""
|
765 |
+
|
766 |
+
#: lib/main.php:497
|
767 |
+
msgid "End timestamp"
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: lib/main.php:498
|
771 |
+
msgid "Timestamp"
|
772 |
+
msgstr ""
|
773 |
+
|
774 |
+
#: lib/main.php:506 lib/main.php:584 lib/main.php:733 lib/main.php:735
|
775 |
+
#: lib/main.php:744 lib/main.php:746 lib/settings.php:548 lib/settings.php:552
|
776 |
+
#: lib/settings.php:630 lib/settings.php:648 lib/settings.php:659
|
777 |
+
#: lib/settings.php:716 lib/settings.php:726 lib/settings.php:742
|
778 |
+
#: lib/settings.php:745 lib/settings.php:857 lib/settings.php:866
|
779 |
+
#: lib/settings.php:874 lib/settings.php:891 lib/settings.php:926
|
780 |
+
#: lib/settings.php:936 lib/settings.php:944 lib/settings.php:954
|
781 |
+
#: lib/settings.php:960 lib/settings.php:986 lib/settings.php:991
|
782 |
+
#: lib/wassupadmin.php:1161 lib/wassupadmin.php:1765
|
783 |
+
msgid "unknown"
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: lib/main.php:510
|
787 |
+
#, php-format
|
788 |
+
msgid "%d URLs visited in session"
|
789 |
+
msgstr ""
|
790 |
+
|
791 |
+
#: lib/main.php:571 lib/wassupadmin.php:1170
|
792 |
+
msgid "Direct hit"
|
793 |
+
msgstr ""
|
794 |
+
|
795 |
+
#: lib/main.php:593
|
796 |
+
msgid "Spam/Malware"
|
797 |
+
msgstr ""
|
798 |
+
|
799 |
+
#: lib/main.php:597
|
800 |
+
msgid "Feedreader"
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: lib/main.php:606 lib/main.php:655 lib/main.php:656
|
804 |
+
msgid "Logged user"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: lib/main.php:635 lib/main.php:636
|
808 |
+
msgid "Country"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: lib/main.php:646 lib/settings.php:570 lib/wassupadmin.php:1966
|
812 |
+
msgid "Language"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: lib/main.php:659
|
816 |
+
msgid "Country:"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: lib/main.php:659
|
820 |
+
msgid "URL Request:"
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: lib/main.php:702
|
824 |
+
msgid "No visitor activity"
|
825 |
+
msgstr ""
|
826 |
+
|
827 |
+
#: lib/main.php:729 lib/main.php:733 lib/main.php:735 lib/main.php:740
|
828 |
+
#: lib/main.php:744 lib/main.php:746
|
829 |
+
#, php-format
|
830 |
+
msgid "City: %s"
|
831 |
+
msgstr ""
|
832 |
+
|
833 |
+
#: lib/main.php:749
|
834 |
+
msgid "Country: unknown, City: unknown"
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: lib/main.php:1021
|
838 |
+
msgid "Print"
|
839 |
+
msgstr ""
|
840 |
+
|
841 |
+
#: lib/main.php:1023
|
842 |
+
#, php-format
|
843 |
+
msgid "Top Stats for Period: %s"
|
844 |
+
msgstr ""
|
845 |
+
|
846 |
+
#: lib/main.php:1058
|
847 |
+
msgid "TOP QUERY"
|
848 |
+
msgstr ""
|
849 |
+
|
850 |
+
#: lib/main.php:1066 lib/wassupadmin.php:1904
|
851 |
+
msgid "not provided"
|
852 |
+
msgstr ""
|
853 |
+
|
854 |
+
#: lib/main.php:1094
|
855 |
+
msgid "TOP REFERRER"
|
856 |
+
msgstr ""
|
857 |
+
|
858 |
+
#: lib/main.php:1133
|
859 |
+
msgid "TOP REQUEST"
|
860 |
+
msgstr ""
|
861 |
+
|
862 |
+
#: lib/main.php:1172
|
863 |
+
msgid "TOP BROWSER"
|
864 |
+
msgstr ""
|
865 |
+
|
866 |
+
#: lib/main.php:1205
|
867 |
+
msgid "TOP OS"
|
868 |
+
msgstr ""
|
869 |
+
|
870 |
+
#: lib/main.php:1237
|
871 |
+
msgid "TOP LOCALE"
|
872 |
+
msgstr ""
|
873 |
+
|
874 |
+
#: lib/main.php:1271
|
875 |
+
msgid "TOP VISITOR"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: lib/main.php:1309
|
879 |
msgid "TOP ARTICLE"
|
880 |
msgstr ""
|
881 |
|
882 |
+
#: lib/main.php:1332
|
883 |
msgid "This report excludes spam and spider records"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: lib/main.php:1334
|
887 |
msgid "This report excludes spider records"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: lib/main.php:1336
|
891 |
msgid "This report excludes spam records"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: lib/main.php:1804
|
895 |
msgid "Last 1 Hour"
|
896 |
msgstr ""
|
897 |
|
898 |
+
#: lib/main.php:1813
|
899 |
msgid "Last 6 Hours"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: lib/main.php:1822
|
903 |
msgid "Last 12 Hours"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: lib/main.php:1831
|
907 |
msgid "Last 7 Days"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: lib/main.php:1845
|
911 |
msgid "Last 2 Weeks"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: lib/main.php:1864
|
915 |
msgid "Last Month"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: lib/main.php:1878
|
919 |
msgid "Last 3 Months"
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: lib/main.php:1892
|
923 |
msgid "Last 6 Months"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: lib/main.php:1900
|
927 |
msgid "Last Year"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: lib/main.php:1908 lib/main.php:1924
|
931 |
msgid "All Time"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: lib/main.php:1915
|
935 |
msgid "Last 24 Hours"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: lib/settings.php:83
|
939 |
msgid ""
|
940 |
"ATTENTION! Your WassUp table have reached the maximum value you set, I "
|
941 |
"disabled the alert, you can re-enable it here."
|
942 |
msgstr ""
|
943 |
|
944 |
+
#: lib/settings.php:104 lib/settings.php:439
|
945 |
msgid "IMPORTANT"
|
946 |
msgstr ""
|
947 |
|
948 |
+
#: lib/settings.php:104
|
949 |
msgid "table empty or does not exist!"
|
950 |
msgstr ""
|
951 |
|
952 |
+
#: lib/settings.php:106
|
953 |
msgid "Visitors Online or Top Stats"
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: lib/settings.php:107
|
957 |
msgid "Widgets menu"
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: lib/settings.php:109
|
961 |
#, php-format
|
962 |
msgid ""
|
963 |
"You can add a sidebar Widget with some useful statistics information by "
|
964 |
"activating the %s widget from the %s."
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: lib/settings.php:110
|
968 |
msgid "Select the options you want for WassUp plugin"
|
969 |
msgstr ""
|
970 |
|
971 |
+
#: lib/settings.php:149
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
972 |
msgid "Manage Files & Data"
|
973 |
msgstr ""
|
974 |
|
975 |
+
#: lib/settings.php:156 lib/wassupadmin.php:641 lib/wassupadmin.php:996
|
|
|
|
|
|
|
|
|
976 |
msgid "Donate"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: lib/settings.php:163
|
980 |
msgid "Networkwide Settings"
|
981 |
msgstr ""
|
982 |
|
983 |
+
#: lib/settings.php:164
|
984 |
msgid "Multisite settings that applies to all subsites in the network."
|
985 |
msgstr ""
|
986 |
|
987 |
+
#: lib/settings.php:166
|
988 |
msgid "Network Statistics Recording"
|
989 |
msgstr ""
|
990 |
|
991 |
+
#: lib/settings.php:167
|
992 |
msgid ""
|
993 |
"Enables Wassup visitor tracking on all subsites in network. Do NOT disable "
|
994 |
"unless upgrading plugin."
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: lib/settings.php:168
|
998 |
msgid "Enable Statistics Recording for network."
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: lib/settings.php:169
|
1002 |
msgid ""
|
1003 |
"Can be overridden on individual subsites to disable statistics recording."
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: lib/settings.php:171
|
1007 |
msgid "Network Subsites Options"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: lib/settings.php:172
|
1011 |
msgid "Show Wassup's Main menu and options panel to subsite administrators."
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: lib/settings.php:173
|
1015 |
msgid ""
|
1016 |
"Uncheck to hide Wassup Main menu and options panel from all users except "
|
1017 |
"Network administrator (super-admin). Dashboard submenu \"Wassup-stats\" and "
|
1018 |
"dashboard widget display are unaffected."
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: lib/settings.php:176
|
1022 |
msgid "Site Settings"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: lib/settings.php:177
|
1026 |
msgid "Main site settings / Default settings for new network subsites."
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: lib/settings.php:180
|
1030 |
msgid "Statistics Recording"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: lib/settings.php:181
|
1034 |
msgid ""
|
1035 |
"By default, Wassup collects and stores incoming visitor hits and checks each "
|
1036 |
"new record for spam and malware activity."
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: lib/settings.php:182
|
1040 |
msgid "Enable statistics recording"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
+
#: lib/settings.php:184
|
1044 |
msgid "Do NOT disable unless upgrading or troubleshooting plugin problems."
|
1045 |
msgstr ""
|
1046 |
|
1047 |
+
#: lib/settings.php:185
|
1048 |
msgid "Do NOT disable unless troubleshooting plugin problems."
|
1049 |
msgstr ""
|
1050 |
|
1051 |
+
#: lib/settings.php:188
|
1052 |
msgid "Enable spam and malware detection on new records"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
+
#: lib/settings.php:189
|
1056 |
msgid ""
|
1057 |
"For identification of incoming spam/malware hits only. Does NOT stop attacks "
|
1058 |
"nor protect your site."
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: lib/settings.php:193
|
1062 |
msgid "User Permissions"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: lib/settings.php:194
|
1066 |
msgid ""
|
1067 |
+
"Gives selected users view-only access to Wassup's stats dashboard menu, some "
|
1068 |
+
"submenu panels, and the dashboard widget."
|
1069 |
msgstr ""
|
1070 |
|
1071 |
+
#: lib/settings.php:195
|
1072 |
msgid ""
|
1073 |
+
"Only administrators can access Wassup's main menu and all it's submenu "
|
1074 |
+
"panels including the options panel to delete data and edit plugin settings."
|
1075 |
msgstr ""
|
1076 |
|
1077 |
+
#: lib/settings.php:196
|
1078 |
msgid "Set minimum user level that can view WassUp stats"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: lib/settings.php:200
|
1082 |
msgid "default administrator"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
+
#: lib/settings.php:205
|
1086 |
msgid "Screen resolution"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
+
#: lib/settings.php:206
|
1090 |
msgid ""
|
1091 |
"Adjusts chart size and resets the max-width/truncation point of long texts."
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: lib/settings.php:207
|
1095 |
msgid "Your default screen resolution (in pixels)"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: lib/settings.php:212
|
1099 |
msgid "Dashboard Widget"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: lib/settings.php:213
|
1103 |
msgid "Enable widget/small chart in admin dashboard"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: lib/settings.php:215
|
1107 |
msgid "Spy Visitors Settings"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: lib/settings.php:230
|
1111 |
msgid "Display a GEO IP Map in the spy visitors view"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: lib/settings.php:231
|
1115 |
msgid "key"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: lib/settings.php:231
|
1119 |
+
msgid "signup for your free key"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: lib/settings.php:232
|
1123 |
+
msgid "An API key is required to view the map."
|
|
|
|
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: lib/settings.php:238
|
1127 |
msgid "Visitor Detail Settings"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: lib/settings.php:239
|
1131 |
msgid "Show visitor details from the last"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
+
#: lib/settings.php:244
|
1135 |
msgid "Time format 12/24 Hour"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: lib/settings.php:248
|
1139 |
msgid "Filter visitor details for"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: lib/settings.php:253
|
1143 |
msgid "Display line chart in detail view"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: lib/settings.php:254
|
1147 |
msgid "Line chart type - how many axes?"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: lib/settings.php:255
|
1151 |
msgid "Set how many minutes wait for automatic page refresh"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
+
#: lib/settings.php:256 lib/settings.php:979 widgets/widgets.php:458
|
1155 |
msgid "minutes"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: lib/settings.php:257
|
1159 |
msgid "default 3, 0=no refresh"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: lib/settings.php:259
|
1163 |
msgid "Number of items per page"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: lib/settings.php:264
|
1167 |
msgid "Top Stats Lists"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: lib/settings.php:265
|
1171 |
msgid "Customize Top stats by selected criteria below."
|
1172 |
msgstr ""
|
1173 |
|
1174 |
+
#: lib/settings.php:265
|
1175 |
msgid ""
|
1176 |
"Stats are in descending order from highest count and known spam and malware "
|
1177 |
"attempts are excluded from counts."
|
1178 |
msgstr ""
|
1179 |
|
1180 |
+
#: lib/settings.php:272
|
1181 |
msgid "List limit of top items"
|
1182 |
msgstr ""
|
1183 |
|
1184 |
+
#: lib/settings.php:274
|
1185 |
msgid "default 10"
|
1186 |
msgstr ""
|
1187 |
|
1188 |
+
#: lib/settings.php:276
|
1189 |
msgid "Choose one or more items to list in Top Stats"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
+
#: lib/settings.php:276
|
1193 |
msgid "over 5 selections may cause horizontal scrolling"
|
1194 |
msgstr ""
|
1195 |
|
1196 |
+
#: lib/settings.php:279 widgets/widget_functions.php:420
|
1197 |
msgid "Top Searches"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: lib/settings.php:280 widgets/widget_functions.php:428
|
1201 |
msgid "Top Referrers"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
+
#: lib/settings.php:281 widgets/widget_functions.php:412
|
1205 |
msgid "Top Articles"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
#: lib/settings.php:284 widgets/widget_functions.php:436
|
1209 |
msgid "Top Requests"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: lib/settings.php:285 widgets/widget_functions.php:444
|
1213 |
msgid "Top Browsers"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
+
#: lib/settings.php:286 widgets/widget_functions.php:452
|
1217 |
msgid "Top OS"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: lib/settings.php:289 widgets/widget_functions.php:460
|
1221 |
msgid "Top Locales"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: lib/settings.php:290
|
1225 |
msgid "Top Visitors"
|
1226 |
msgstr ""
|
1227 |
|
1228 |
+
#: lib/settings.php:295
|
1229 |
msgid "Exclude the following website domains from Top Referrers"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
+
#: lib/settings.php:295 lib/settings.php:303
|
1233 |
msgid "applies to top stats view and widgets"
|
1234 |
msgstr ""
|
1235 |
|
1236 |
+
#: lib/settings.php:298
|
1237 |
msgid "comma separated value"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: lib/settings.php:298
|
1241 |
msgid "List whole domains only. Wildcards and partial domains will be ignored."
|
1242 |
msgstr ""
|
1243 |
|
1244 |
+
#: lib/settings.php:299
|
1245 |
msgid "Don't list your website domain defined in WordPress"
|
1246 |
msgstr ""
|
1247 |
|
1248 |
+
#: lib/settings.php:303
|
1249 |
msgid "Exclude site front page from Top Articles"
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: lib/settings.php:310
|
1253 |
msgid "Exclude all spider records from Top Stats"
|
1254 |
msgstr ""
|
1255 |
|
1256 |
+
#: lib/settings.php:313 lib/settings.php:373 lib/settings.php:537
|
1257 |
+
#: lib/settings.php:1036 lib/wassupadmin.php:1639
|
1258 |
msgid "Save Settings"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
+
#: lib/settings.php:313 lib/settings.php:373 lib/settings.php:537
|
1262 |
+
#: lib/settings.php:1036
|
1263 |
msgid "Reset"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: lib/settings.php:313 lib/settings.php:373 lib/settings.php:537
|
1267 |
+
#: lib/settings.php:1036
|
1268 |
msgid "Reset to Default"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
#: lib/settings.php:314 lib/settings.php:374 lib/settings.php:1021
|
1272 |
+
#: lib/settings.php:1037 lib/settings.php:1059 lib/wassupadmin.php:1087
|
1273 |
+
#: widgets/widgets.php:576 widgets/widget_functions.php:409
|
|
|
1274 |
msgid "Top"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: lib/settings.php:318
|
1278 |
msgid "Recording Filters and Exclusions"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: lib/settings.php:319
|
1282 |
msgid ""
|
1283 |
"Use the filter checkboxes and exclusion input fields below to customize "
|
1284 |
"Wassup's statistics recording so that only the data that you need for your "
|
1285 |
"site analyses are stored."
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: lib/settings.php:321
|
1289 |
msgid "Visitor Type Filters:"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: lib/settings.php:322
|
1293 |
msgid "Checkbox to enable recording by type of \"visitor\""
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: lib/settings.php:324
|
1297 |
msgid "Record regular visitors"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
+
#: lib/settings.php:325
|
1301 |
msgid "Record logged in users"
|
1302 |
msgstr ""
|
1303 |
|
1304 |
+
#: lib/settings.php:326
|
1305 |
msgid "Record logged in administrators"
|
1306 |
msgstr ""
|
1307 |
|
1308 |
+
#: lib/settings.php:327
|
1309 |
msgid "Record spiders and bots"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
+
#: lib/settings.php:330
|
1313 |
msgid "Spam and Malware Filters:"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
+
#: lib/settings.php:331
|
1317 |
msgid "Checkbox to enable recording of each type of \"spam\""
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
#: lib/settings.php:333 lib/wassupadmin.php:1635
|
1321 |
msgid "Record Akismet comment spam attempts"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: lib/settings.php:333
|
1325 |
msgid "checks IP for previous spam comments"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: lib/settings.php:334 lib/wassupadmin.php:1636
|
1329 |
msgid "Record referrer spam attempts"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: lib/settings.php:335 lib/wassupadmin.php:1638
|
1333 |
msgid "Record admin break-in/hacker attempts"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: lib/settings.php:336
|
1337 |
msgid "Record attack/exploit attempts"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: lib/settings.php:336
|
1341 |
msgid "or"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
+
#: lib/settings.php:339
|
1345 |
+
msgid "Referrer spam whitelist"
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: lib/settings.php:340
|
1349 |
+
msgid ""
|
1350 |
+
"Enter referrer domains that were incorrectly labeled as \"Referrer Spam\" in "
|
1351 |
+
"\"Visitor Detals\":"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
#: lib/settings.php:342
|
1355 |
msgid ""
|
1356 |
+
"comma separated value. Enter whole domains only. Wildcards will be ignored."
|
1357 |
+
msgstr ""
|
1358 |
+
|
1359 |
+
#: lib/settings.php:345
|
1360 |
+
msgid "Recording Exceptions"
|
1361 |
+
msgstr ""
|
1362 |
+
|
1363 |
+
#: lib/settings.php:346
|
1364 |
+
msgid ""
|
1365 |
"You can exclude a single visitor (by IP, hostname or username) or you can "
|
1366 |
"exclude a specific URL request from being stored in WassUp records."
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: lib/settings.php:347
|
1370 |
msgid ""
|
1371 |
"Note that recording exceptions lower overall statistics counts and excessive "
|
1372 |
"exclusions can affect page load speed on slow host servers."
|
1373 |
msgstr ""
|
1374 |
|
1375 |
+
#: lib/settings.php:349
|
1376 |
msgid "Exclude by IP"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
+
#: lib/settings.php:350
|
1380 |
msgid "Enter source IPs to omit from recording"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
+
#: lib/settings.php:353
|
1384 |
msgid "comma separated value (ex: 127.0.0.1, 10.0.0.1, etc...)."
|
1385 |
msgstr ""
|
1386 |
|
1387 |
+
#: lib/settings.php:353
|
1388 |
msgid ""
|
1389 |
"A single wildcard (*) can be placed after the last '.' in the IP ('::' in "
|
1390 |
"IPv6) for range exclusions (ex: 10.10.100.*, 192.168.*)."
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: lib/settings.php:355
|
1394 |
msgid "Exclude by Hostname"
|
1395 |
msgstr ""
|
1396 |
|
1397 |
+
#: lib/settings.php:356
|
1398 |
msgid "Enter source hostnames to omit from recording"
|
1399 |
msgstr ""
|
1400 |
|
1401 |
+
#: lib/settings.php:359
|
1402 |
msgid "comma separated value (ex: host1.domain.com, host2.domain.net, etc...)."
|
1403 |
msgstr ""
|
1404 |
|
1405 |
+
#: lib/settings.php:359
|
1406 |
msgid ""
|
1407 |
"A single wildcard (*) can be placed before the first '.' for domain network "
|
1408 |
"exclusions (ex: *.spamdomain.com, *.hackers.malware.net)."
|
1409 |
msgstr ""
|
1410 |
|
1411 |
+
#: lib/settings.php:361
|
1412 |
msgid "Exclude by Username"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
+
#: lib/settings.php:362
|
1416 |
msgid "Enter usernames to omit from recording"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
+
#: lib/settings.php:365
|
1420 |
msgid ""
|
1421 |
"comma separated value, enter a registered user's login name (ex: bobmarley, "
|
1422 |
"enyabrennan, etc.)"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
+
#: lib/settings.php:367
|
1426 |
msgid "Exclude by URL request"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
+
#: lib/settings.php:368
|
1430 |
msgid "Enter URLs of page/post/feed to omit from recording"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
+
#: lib/settings.php:371
|
1434 |
msgid ""
|
1435 |
"comma separated value, don't enter entire url, only the last path or some "
|
1436 |
"word to exclude (ex: /category/wordpress, 2007, etc...)"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: lib/settings.php:374 lib/settings.php:1021 lib/settings.php:1037
|
1440 |
+
#: lib/settings.php:1059
|
1441 |
msgid "Prev"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
+
#: lib/settings.php:378
|
1445 |
msgid "Table Management Options"
|
1446 |
msgstr ""
|
1447 |
|
1448 |
+
#: lib/settings.php:385
|
1449 |
msgid "Select actions for table growth"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
+
#: lib/settings.php:386
|
1453 |
msgid ""
|
1454 |
"WassUp table grows very fast, especially if your site is frequently visited. "
|
1455 |
"I recommend you delete old records sometimes."
|
1456 |
msgstr ""
|
1457 |
|
1458 |
+
#: lib/settings.php:387
|
1459 |
msgid ""
|
1460 |
"You can delete all Wassup records now (Empty Table), you can set an "
|
1461 |
"automatic delete option to delete selected old records daily, and you can "
|
1462 |
"manually delete selected old records once (Delete NOW)."
|
1463 |
msgstr ""
|
1464 |
|
1465 |
+
#: lib/settings.php:388
|
1466 |
msgid "If you haven't database space problems, you can leave the table as is."
|
1467 |
msgstr ""
|
1468 |
|
1469 |
+
#: lib/settings.php:389
|
1470 |
msgid "Current WassUp table usage is"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
+
#: lib/settings.php:392
|
1474 |
msgid "records"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
+
#: lib/settings.php:395
|
1478 |
msgid "Alert me"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
#: lib/settings.php:395
|
1482 |
msgid "email to"
|
1483 |
msgstr ""
|
1484 |
|
1485 |
+
#: lib/settings.php:395
|
1486 |
msgid "when table reaches"
|
1487 |
msgstr ""
|
1488 |
|
1489 |
+
#: lib/settings.php:396
|
1490 |
msgid "Delete old records"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: lib/settings.php:398
|
|
|
1494 |
msgid ""
|
1495 |
+
"Before deleting, you can backup Wassup table by clicking the \"Export SQL\" "
|
1496 |
+
"button below."
|
1497 |
msgstr ""
|
1498 |
|
1499 |
+
#: lib/settings.php:399
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1500 |
msgid "Automatically delete"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
+
#: lib/settings.php:401 lib/settings.php:406
|
1504 |
msgid "records older than"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
+
#: lib/settings.php:402
|
1508 |
msgid "daily"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
+
#: lib/settings.php:404
|
1512 |
msgid "Manually delete"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: lib/settings.php:407
|
1516 |
msgid "once"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: lib/settings.php:414
|
1520 |
msgid "Delete all records up to record ID#"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
+
#: lib/settings.php:415
|
1524 |
+
msgid "Last SQL export record ID#:"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
+
#: lib/settings.php:417
|
1528 |
msgid "Empty table"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
+
#: lib/settings.php:418
|
1532 |
msgid "export table in SQL format"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
+
#: lib/settings.php:421
|
1536 |
msgid "Delete NOW"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
+
#: lib/settings.php:422
|
1540 |
msgid "Action is NOT undoable!"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
+
#: lib/settings.php:425
|
1544 |
+
msgid "Table Export"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
+
#: lib/settings.php:427
|
1548 |
+
msgid "Wassup can export table records in SQL or CSV format."
|
|
|
|
|
|
|
1549 |
msgstr ""
|
1550 |
|
1551 |
+
#: lib/settings.php:428
|
1552 |
+
msgid ""
|
1553 |
+
"An automatic file download will start after table data is retrieved "
|
1554 |
+
"successfully."
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: lib/settings.php:429
|
1558 |
msgid ""
|
1559 |
+
"By default, exported records excludes known spam/malware to prevent "
|
1560 |
+
"propagation of malware."
|
1561 |
msgstr ""
|
1562 |
|
1563 |
+
#: lib/settings.php:431
|
1564 |
+
msgid "Include spam records in exported data"
|
1565 |
+
msgstr ""
|
1566 |
+
|
1567 |
+
#: lib/settings.php:432
|
1568 |
msgid ""
|
1569 |
"Security NOTICE: Enabling this could expose your computer or website to "
|
1570 |
"malware when spam records are imported."
|
1571 |
msgstr ""
|
1572 |
|
1573 |
+
#: lib/settings.php:434
|
1574 |
msgid "Omit record ID from exported fields"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: lib/settings.php:435
|
1578 |
msgid ""
|
1579 |
+
"Check this box when importing SQL data into another Wassup table that "
|
1580 |
+
"already has records (appending data)."
|
1581 |
msgstr ""
|
1582 |
|
1583 |
+
#: lib/settings.php:439
|
1584 |
+
msgid "Click \"Save Settings\" to apply option changes before export."
|
1585 |
+
msgstr ""
|
1586 |
+
|
1587 |
+
#: lib/settings.php:440
|
1588 |
+
msgid "Export SQL"
|
1589 |
+
msgstr ""
|
1590 |
+
|
1591 |
+
#: lib/settings.php:441
|
1592 |
+
msgid "Export CSV"
|
1593 |
+
msgstr ""
|
1594 |
+
|
1595 |
+
#: lib/settings.php:443
|
1596 |
+
msgid "Export of large datasets may be truncated."
|
1597 |
+
msgstr ""
|
1598 |
+
|
1599 |
+
#: lib/settings.php:446
|
1600 |
+
msgid "Export"
|
1601 |
+
msgstr ""
|
1602 |
+
|
1603 |
+
#: lib/settings.php:446 lib/wassupadmin.php:306
|
1604 |
+
msgid "Retrieving data for export. Download will start soon. Please wait."
|
1605 |
+
msgstr ""
|
1606 |
+
|
1607 |
+
#: lib/settings.php:448
|
1608 |
msgid "Table Optimization"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: lib/settings.php:453
|
1612 |
msgid ""
|
1613 |
"By default, WassUp tables are automatically optimized weekly and after each "
|
1614 |
"bulk deletion. This helps keep WassUp running fast, but it can sometimes "
|
1615 |
"cause slowdowns especially when there is a corrupt record in the table."
|
1616 |
msgstr ""
|
1617 |
|
1618 |
+
#: lib/settings.php:462
|
1619 |
msgid "You can cancel automatic optimization by unchecking the box below."
|
1620 |
msgstr ""
|
1621 |
|
1622 |
+
#: lib/settings.php:464
|
1623 |
msgid "Login as network admin to cancel automatic optimization below."
|
1624 |
msgstr ""
|
1625 |
|
1626 |
+
#: lib/settings.php:465
|
1627 |
msgid "Login as network admin to enable automatic optimization below."
|
1628 |
msgstr ""
|
1629 |
|
1630 |
+
#: lib/settings.php:467
|
1631 |
msgid "Your table engine does NOT support the \"optimize\" command."
|
1632 |
msgstr ""
|
1633 |
|
1634 |
+
#: lib/settings.php:477
|
1635 |
msgid "Enable automatic table optimization"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
+
#: lib/settings.php:485
|
1639 |
msgid "is overdue"
|
1640 |
msgstr ""
|
1641 |
|
1642 |
+
#: lib/settings.php:487
|
1643 |
msgid "today"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
+
#: lib/settings.php:490
|
1647 |
#, php-format
|
1648 |
msgid "%d days"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: lib/settings.php:491
|
1652 |
msgid "1 week"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
+
#: lib/settings.php:497
|
1656 |
#, php-format
|
1657 |
msgid "Next scheduled optimization is: %s (approximately)"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: lib/settings.php:499
|
1661 |
#, php-format
|
1662 |
msgid "Next scheduled optimization is: %s"
|
1663 |
msgstr ""
|
1664 |
|
1665 |
+
#: lib/settings.php:499
|
1666 |
msgid "never"
|
1667 |
msgstr ""
|
1668 |
|
1669 |
+
#: lib/settings.php:503
|
1670 |
msgid "Data Storage Methods"
|
1671 |
msgstr ""
|
1672 |
|
1673 |
+
#: lib/settings.php:506
|
1674 |
msgid "Delayed Insert"
|
1675 |
msgstr ""
|
1676 |
|
1677 |
+
#: lib/settings.php:508
|
1678 |
msgid ""
|
1679 |
"When possible, WassUp uses the \"Delayed insert\" method of saving records "
|
1680 |
"in MySQL to store new visitor records. This method helps keep Wassup running "
|
1683 |
"disable it on shared servers."
|
1684 |
msgstr ""
|
1685 |
|
1686 |
+
#: lib/settings.php:509
|
1687 |
msgid "You can turn off \"delayed insert\" by unchecking the box below."
|
1688 |
msgstr ""
|
1689 |
|
1690 |
+
#: lib/settings.php:513
|
1691 |
msgid "This method is unavailable for your storage engine type."
|
1692 |
msgstr ""
|
1693 |
|
1694 |
+
#: lib/settings.php:525
|
1695 |
msgid "This method is disabled on your host server."
|
1696 |
msgstr ""
|
1697 |
|
1698 |
+
#: lib/settings.php:534
|
1699 |
msgid "Store new visitor records with \"delayed insert\""
|
1700 |
msgstr ""
|
1701 |
|
1702 |
+
#: lib/settings.php:541
|
1703 |
msgid "Server Settings and Memory Resources"
|
1704 |
msgstr ""
|
1705 |
|
1706 |
+
#: lib/settings.php:542
|
1707 |
#, php-format
|
1708 |
msgid ""
|
1709 |
"For information only. Some values may be adjustable in startup files: %s"
|
1710 |
msgstr ""
|
1711 |
|
1712 |
+
#: lib/settings.php:542
|
1713 |
msgid "\"wp_config.php\", \"php.ini\" and \"my.ini\""
|
1714 |
msgstr ""
|
1715 |
|
1716 |
+
#: lib/settings.php:543 lib/settings.php:554 lib/settings.php:662
|
1717 |
+
#: lib/settings.php:857
|
1718 |
msgid "Version"
|
1719 |
msgstr ""
|
1720 |
|
1721 |
+
#: lib/settings.php:545
|
1722 |
msgid "Table name"
|
1723 |
msgstr ""
|
1724 |
|
1725 |
+
#: lib/settings.php:546
|
1726 |
msgid "Table Charset/collation"
|
1727 |
msgstr ""
|
1728 |
|
1729 |
+
#: lib/settings.php:550
|
1730 |
msgid "Table engine"
|
1731 |
msgstr ""
|
1732 |
|
1733 |
+
#: lib/settings.php:552
|
1734 |
msgid "Upgrade date"
|
1735 |
msgstr ""
|
1736 |
|
1737 |
+
#: lib/settings.php:560
|
1738 |
msgid "network"
|
1739 |
msgstr ""
|
1740 |
|
1741 |
+
#: lib/settings.php:563 lib/settings.php:576 lib/settings.php:672
|
1742 |
+
#: lib/settings.php:683 lib/settings.php:687 lib/settings.php:967
|
1743 |
msgid "on"
|
1744 |
msgstr ""
|
1745 |
|
1746 |
+
#: lib/settings.php:565 lib/settings.php:674 lib/settings.php:681
|
1747 |
+
#: lib/settings.php:688 lib/settings.php:965
|
1748 |
msgid "off"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
+
#: lib/settings.php:569
|
1752 |
msgid "Character set"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
+
#: lib/settings.php:573 lib/settings.php:750
|
1756 |
msgid "not set"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
+
#: lib/settings.php:581 lib/settings.php:702
|
1760 |
msgid "Memory Allocation"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
+
#: lib/settings.php:606
|
1764 |
msgid "no limit/unknown"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
+
#: lib/settings.php:610 lib/settings.php:766 lib/settings.php:993
|
1768 |
msgid "Timezone"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
+
#: lib/settings.php:611 lib/settings.php:769
|
1772 |
msgid "Time Offset"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: lib/settings.php:623 lib/settings.php:772 lib/settings.php:774
|
1776 |
+
msgid "hours"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1777 |
msgstr ""
|
1778 |
|
1779 |
+
#: lib/settings.php:624
|
1780 |
+
msgid "Host Timezone"
|
|
|
1781 |
msgstr ""
|
1782 |
|
1783 |
+
#: lib/settings.php:632
|
1784 |
+
msgid "Host Server"
|
|
|
|
|
1785 |
msgstr ""
|
1786 |
|
1787 |
+
#: lib/settings.php:650
|
1788 |
+
msgid "Browser Client"
|
|
|
|
|
|
|
|
|
1789 |
msgstr ""
|
1790 |
|
1791 |
+
#: lib/settings.php:668
|
1792 |
+
msgid "Safe Mode"
|
|
|
|
|
|
|
|
|
1793 |
msgstr ""
|
1794 |
|
1795 |
+
#: lib/settings.php:678
|
1796 |
+
msgid "File Open Restrictions"
|
|
|
|
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: lib/settings.php:685
|
1800 |
+
msgid "URL File Open"
|
|
|
|
|
|
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: lib/settings.php:690
|
1804 |
+
msgid "Disabled functions"
|
|
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: lib/settings.php:697
|
1808 |
+
msgid "none"
|
|
|
|
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: lib/settings.php:699
|
1812 |
+
msgid "not applicable/safe mode set"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: lib/settings.php:713 lib/settings.php:888
|
1816 |
+
msgid "unlimited/up to server maximum"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: lib/settings.php:721
|
1820 |
+
msgid "Memory Usage"
|
|
|
|
|
|
|
|
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: lib/settings.php:728
|
1824 |
+
msgid "Script Timeout Limit"
|
|
|
|
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: lib/settings.php:733 lib/settings.php:734 lib/settings.php:735
|
1828 |
+
#: lib/settings.php:737 lib/settings.php:958 lib/settings.php:981
|
1829 |
+
msgid "seconds"
|
|
|
|
|
1830 |
msgstr ""
|
1831 |
|
1832 |
+
#: lib/settings.php:740
|
1833 |
+
msgid "unlimited"
|
|
|
|
|
|
|
|
|
1834 |
msgstr ""
|
1835 |
|
1836 |
+
#: lib/settings.php:748
|
1837 |
+
msgid "Browser Capabilities File"
|
|
|
|
|
1838 |
msgstr ""
|
1839 |
|
1840 |
+
#: lib/settings.php:754
|
1841 |
+
msgid "not installed"
|
|
|
|
|
|
|
|
|
1842 |
msgstr ""
|
1843 |
|
1844 |
+
#: lib/settings.php:755
|
1845 |
+
msgid "installed"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
+
#: lib/settings.php:777
|
1849 |
+
msgid "as modified in Wordpress"
|
|
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: lib/settings.php:859
|
1853 |
+
msgid "Storage Engine"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
+
#: lib/settings.php:868
|
1857 |
+
msgid "Charset/collation"
|
|
|
|
|
|
|
1858 |
msgstr ""
|
1859 |
|
1860 |
+
#: lib/settings.php:877
|
1861 |
+
msgid "Max User Connections"
|
|
|
|
|
1862 |
msgstr ""
|
1863 |
|
1864 |
+
#: lib/settings.php:883
|
1865 |
+
msgid "possibly too small"
|
|
|
|
|
|
|
1866 |
msgstr ""
|
1867 |
|
1868 |
+
#: lib/settings.php:893
|
1869 |
+
msgid "Allocation"
|
|
|
|
|
|
|
1870 |
msgstr ""
|
1871 |
|
1872 |
+
#: lib/settings.php:899
|
1873 |
+
msgid "possibly too big, reduces available RAM."
|
|
|
|
|
|
|
1874 |
msgstr ""
|
1875 |
|
1876 |
+
#: lib/settings.php:906
|
1877 |
+
msgid "on demand"
|
|
|
|
|
1878 |
msgstr ""
|
1879 |
|
1880 |
+
#: lib/settings.php:908
|
1881 |
+
msgid "Cached Query Limit"
|
|
|
|
|
|
|
|
|
|
|
1882 |
msgstr ""
|
1883 |
|
1884 |
+
#: lib/settings.php:911 lib/settings.php:914 lib/settings.php:924
|
1885 |
+
#: lib/settings.php:934 lib/settings.php:942 lib/settings.php:951
|
1886 |
+
#: lib/settings.php:972 lib/settings.php:990
|
1887 |
+
msgid "disabled"
|
1888 |
msgstr ""
|
1889 |
|
1890 |
+
#: lib/settings.php:956
|
1891 |
+
msgid "Wait Timeout"
|
|
|
|
|
|
|
|
|
|
|
1892 |
msgstr ""
|
1893 |
|
1894 |
+
#: lib/settings.php:975
|
1895 |
+
msgid "rows"
|
1896 |
msgstr ""
|
1897 |
|
1898 |
+
#: lib/settings.php:989
|
1899 |
+
msgid "not available"
|
|
|
|
|
|
|
|
|
|
|
|
|
1900 |
msgstr ""
|
1901 |
|
1902 |
+
#: lib/settings.php:1016
|
1903 |
+
msgid "may be different from PHP offset"
|
1904 |
msgstr ""
|
1905 |
|
1906 |
+
#: lib/settings.php:1026
|
1907 |
+
msgid "Want to uninstall WassUp?"
|
|
|
|
|
|
|
1908 |
msgstr ""
|
1909 |
|
1910 |
+
#: lib/settings.php:1027
|
1911 |
msgid ""
|
1912 |
+
"No problem. Before you deactivate this plugin, check the box below to "
|
1913 |
+
"cleanup any data that was collected by WassUp that could be left behind."
|
|
|
|
|
|
|
|
|
|
|
1914 |
msgstr ""
|
1915 |
|
1916 |
+
#: lib/settings.php:1028
|
1917 |
+
msgid "Permanently remove WassUp data and settings."
|
|
|
|
|
|
|
|
|
|
|
1918 |
msgstr ""
|
1919 |
|
1920 |
+
#: lib/settings.php:1030
|
1921 |
+
msgid "WARNING"
|
1922 |
+
msgstr ""
|
1923 |
+
|
1924 |
+
#: lib/settings.php:1030
|
1925 |
msgid ""
|
1926 |
+
"All WassUp data and settings will be DELETED upon deactivation of this "
|
1927 |
+
"plugin."
|
|
|
|
|
|
|
|
|
|
|
1928 |
msgstr ""
|
1929 |
|
1930 |
+
#: lib/settings.php:1032
|
1931 |
#, php-format
|
1932 |
+
msgid ""
|
1933 |
+
"This action cannot be undone. Before uninstalling WassUp, you should backup "
|
1934 |
+
"your Wordpress database first. WassUp data is stored in the table %s."
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: lib/settings.php:1034
|
1938 |
+
#, php-format
|
1939 |
+
msgid "To help improve this plugin, we would appreciate your feedback at %s."
|
1940 |
msgstr ""
|
1941 |
|
1942 |
+
#: lib/settings.php:1042
|
1943 |
msgid "How you can donate"
|
1944 |
msgstr ""
|
1945 |
|
1946 |
+
#: lib/settings.php:1043
|
1947 |
msgid ""
|
1948 |
"If you like this plugin, please consider making a donation to help keep it's "
|
1949 |
"development active."
|
1950 |
msgstr ""
|
1951 |
|
1952 |
+
#: lib/settings.php:1045
|
1953 |
#, php-format
|
1954 |
msgid "Donate by %s"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
+
#: lib/settings.php:1046
|
1958 |
#, php-format
|
1959 |
msgid "Donate %s"
|
1960 |
msgstr ""
|
1961 |
|
1962 |
+
#: lib/settings.php:1048
|
1963 |
msgid "Send your bitcoin donation to this address"
|
1964 |
msgstr ""
|
1965 |
|
2009 |
msgid "IMPORTANT: Wassup Widget has changed and must be re-installed."
|
2010 |
msgstr ""
|
2011 |
|
2012 |
+
#: lib/upgrade.php:335
|
2013 |
msgid "Welcome to WassUP"
|
2014 |
msgstr ""
|
2015 |
|
2016 |
+
#: lib/upgrade.php:355 lib/upgrade.php:398
|
2017 |
#, php-format
|
2018 |
msgid "An error occurred during the install of table %s."
|
2019 |
msgstr ""
|
2020 |
|
2021 |
+
#: lib/wassup.class.php:448 lib/compat-lib/compat_wassup.class.php:450
|
2022 |
msgid "Administrator"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
+
#: lib/wassup.class.php:449 lib/compat-lib/compat_wassup.class.php:451
|
2026 |
msgid "Editor"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
+
#: lib/wassup.class.php:450 lib/compat-lib/compat_wassup.class.php:452
|
2030 |
msgid "Author"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
+
#: lib/wassup.class.php:451 lib/compat-lib/compat_wassup.class.php:453
|
2034 |
msgid "Contributor"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
+
#: lib/wassup.class.php:452 lib/compat-lib/compat_wassup.class.php:454
|
2038 |
msgid "Subscriber"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
+
#: lib/wassup.class.php:458 lib/compat-lib/compat_wassup.class.php:460
|
2042 |
msgid "One - 2 lines chart 1 axis"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
+
#: lib/wassup.class.php:459 lib/compat-lib/compat_wassup.class.php:461
|
2046 |
msgid "Two - 2 lines chart 2 axes"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
+
#: lib/wassup.class.php:479 lib/compat-lib/compat_wassup.class.php:481
|
2050 |
msgid "Everything"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
+
#: lib/wassup.class.php:481 lib/compat-lib/compat_wassup.class.php:483
|
2054 |
msgid "No spider"
|
2055 |
msgstr ""
|
2056 |
|
2057 |
+
#: lib/wassup.class.php:483 lib/compat-lib/compat_wassup.class.php:485
|
2058 |
msgid "No Spam"
|
2059 |
msgstr ""
|
2060 |
|
2061 |
+
#: lib/wassup.class.php:484 lib/compat-lib/compat_wassup.class.php:486
|
2062 |
msgid "No Spam, No Spider"
|
2063 |
msgstr ""
|
2064 |
|
2065 |
+
#: lib/wassup.class.php:485 lib/compat-lib/compat_wassup.class.php:487
|
2066 |
msgid "Users logged in"
|
2067 |
msgstr ""
|
2068 |
|
2069 |
+
#: lib/wassup.class.php:486 lib/wassupadmin.php:1146 lib/wassupadmin.php:2241
|
2070 |
+
#: widgets/widgets.php:235 widgets/widget_functions.php:221
|
2071 |
+
#: lib/compat-lib/compat_wassup.class.php:488
|
2072 |
+
#: lib/compat-lib/compat_wassup.class.php:2942
|
2073 |
msgid "Comment authors"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
+
#: lib/wassup.class.php:487 lib/compat-lib/compat_wassup.class.php:489
|
2077 |
msgid "Referrer from search engine"
|
2078 |
msgstr ""
|
2079 |
|
2080 |
+
#: lib/wassup.class.php:488 lib/compat-lib/compat_wassup.class.php:490
|
2081 |
msgid "Referrer from ext link"
|
2082 |
msgstr ""
|
2083 |
|
2084 |
+
#: lib/wassup.class.php:521 lib/compat-lib/compat_wassup.class.php:523
|
2085 |
msgid "Don't delete anything"
|
2086 |
msgstr ""
|
2087 |
|
2088 |
+
#: lib/wassup.class.php:522 lib/wassup.class.php:558
|
2089 |
+
#: lib/compat-lib/compat_wassup.class.php:524
|
2090 |
+
#: lib/compat-lib/compat_wassup.class.php:560
|
2091 |
msgid "24 hours"
|
2092 |
msgstr ""
|
2093 |
|
2094 |
+
#: lib/wassup.class.php:523 lib/wassup.class.php:559
|
2095 |
+
#: lib/compat-lib/compat_wassup.class.php:525
|
2096 |
+
#: lib/compat-lib/compat_wassup.class.php:561
|
2097 |
msgid "7 days"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: lib/wassup.class.php:524 lib/wassup.class.php:560
|
2101 |
+
#: lib/compat-lib/compat_wassup.class.php:526
|
2102 |
+
#: lib/compat-lib/compat_wassup.class.php:562
|
2103 |
msgid "2 weeks"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
+
#: lib/wassup.class.php:525 lib/wassup.class.php:561
|
2107 |
+
#: lib/compat-lib/compat_wassup.class.php:527
|
2108 |
+
#: lib/compat-lib/compat_wassup.class.php:563
|
2109 |
msgid "1 month"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
+
#: lib/wassup.class.php:526 lib/wassup.class.php:562
|
2113 |
+
#: lib/compat-lib/compat_wassup.class.php:528
|
2114 |
+
#: lib/compat-lib/compat_wassup.class.php:564
|
2115 |
msgid "3 months"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
+
#: lib/wassup.class.php:527 lib/wassup.class.php:563
|
2119 |
+
#: lib/compat-lib/compat_wassup.class.php:529
|
2120 |
+
#: lib/compat-lib/compat_wassup.class.php:565
|
2121 |
msgid "6 months"
|
2122 |
msgstr ""
|
2123 |
|
2124 |
+
#: lib/wassup.class.php:528 lib/wassup.class.php:564
|
2125 |
+
#: lib/compat-lib/compat_wassup.class.php:530
|
2126 |
+
#: lib/compat-lib/compat_wassup.class.php:566
|
2127 |
msgid "1 year"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
+
#: lib/wassup.class.php:535 lib/compat-lib/compat_wassup.class.php:537
|
2131 |
msgid "All"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
+
#: lib/wassup.class.php:538 lib/compat-lib/compat_wassup.class.php:540
|
2135 |
msgid "Spider and spam"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
+
#: lib/wassup.class.php:548 lib/compat-lib/compat_wassup.class.php:550
|
2139 |
msgid "IP Address"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
+
#: lib/wassup.class.php:549 lib/compat-lib/compat_wassup.class.php:551
|
2143 |
msgid "URL Request"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
+
#: lib/wassup.class.php:555 lib/compat-lib/compat_wassup.class.php:557
|
2147 |
msgid "1 hour"
|
2148 |
msgstr ""
|
2149 |
|
2150 |
+
#: lib/wassup.class.php:556 lib/compat-lib/compat_wassup.class.php:558
|
2151 |
msgid "6 hours"
|
2152 |
msgstr ""
|
2153 |
|
2154 |
+
#: lib/wassup.class.php:557 lib/compat-lib/compat_wassup.class.php:559
|
2155 |
msgid "12 hours"
|
2156 |
msgstr ""
|
2157 |
|
2158 |
+
#: lib/wassup.class.php:565 lib/compat-lib/compat_wassup.class.php:567
|
2159 |
msgid "all time"
|
2160 |
msgstr ""
|
2161 |
|
2162 |
+
#: lib/wassup.class.php:659 lib/compat-lib/compat_wassup.class.php:661
|
2163 |
msgid ""
|
2164 |
"Permission denied! Sorry, you must be an 'administrator' to change settings."
|
2165 |
msgstr ""
|
2166 |
|
2167 |
+
#: lib/wassup.class.php:662 lib/compat-lib/compat_wassup.class.php:664
|
2168 |
msgid "Nothing to do!"
|
2169 |
msgstr ""
|
2170 |
|
2171 |
+
#: lib/wassup.class.php:792 lib/wassupadmin.php:761
|
2172 |
+
#: lib/compat-lib/compat_wassup.class.php:794
|
|
|
|
|
|
|
|
|
2173 |
msgid "Wassup options updated successfully"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
+
#: lib/wassup.class.php:1116 lib/compat-lib/compat_wassup.class.php:1118
|
2177 |
msgid "error"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
+
#: lib/wassup.class.php:1117 lib/compat-lib/compat_wassup.class.php:1119
|
2181 |
msgid "warning"
|
2182 |
msgstr ""
|
2183 |
|
2184 |
+
#: lib/wassup.class.php:1118 lib/compat-lib/compat_wassup.class.php:1120
|
2185 |
msgid "updated"
|
2186 |
msgstr ""
|
2187 |
|
2188 |
+
#: lib/wassup.class.php:1119 lib/compat-lib/compat_wassup.class.php:1121
|
2189 |
msgid "upgraded"
|
2190 |
msgstr ""
|
2191 |
|
2192 |
+
#: lib/wassup.class.php:1120 lib/compat-lib/compat_wassup.class.php:1122
|
2193 |
msgid "deleted"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
+
#: lib/wassup.class.php:1795 lib/compat-lib/compat_wassup.class.php:1794
|
2197 |
msgid "ERROR"
|
2198 |
msgstr ""
|
2199 |
|
2200 |
+
#: lib/wassup.class.php:1855 lib/compat-lib/compat_wassup.class.php:1854
|
2201 |
#, php-format
|
2202 |
msgid "%s error!"
|
2203 |
msgstr ""
|
2204 |
|
2205 |
+
#: lib/wassup.class.php:1856 lib/compat-lib/compat_wassup.class.php:1855
|
2206 |
#, php-format
|
2207 |
msgid "%s encountered an error."
|
2208 |
msgstr ""
|
2209 |
|
2210 |
+
#: lib/wassup.class.php:1963 lib/compat-lib/compat_wassup.class.php:1962
|
2211 |
msgid "Wassup auto-delete notice"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
+
#: lib/wassup.class.php:1964 lib/compat-lib/compat_wassup.class.php:1963
|
2215 |
#, php-format
|
2216 |
msgid "Auto-delete deleted %d old %s records today."
|
2217 |
msgstr ""
|
2218 |
|
2219 |
+
#: lib/wassup.class.php:1978 lib/compat-lib/compat_wassup.class.php:1977
|
2220 |
+
msgid "Missing or incorrect table name"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2221 |
msgstr ""
|
2222 |
|
2223 |
+
#: lib/wassup.class.php:2031 lib/compat-lib/compat_wassup.class.php:2030
|
2224 |
+
msgid "Export ERROR: Invalid Export request"
|
|
|
2225 |
msgstr ""
|
2226 |
|
2227 |
+
#: lib/wassup.class.php:2047 lib/compat-lib/compat_wassup.class.php:2046
|
2228 |
#, php-format
|
2229 |
+
msgid "Export ERROR: TABLE %s not found!"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
+
#: lib/wassup.class.php:2069 lib/compat-lib/compat_wassup.class.php:2068
|
2233 |
#, php-format
|
2234 |
+
msgid "Export ERROR: Unable to get TABLE %s structure!"
|
2235 |
msgstr ""
|
2236 |
|
2237 |
+
#: lib/wassup.class.php:2085 lib/compat-lib/compat_wassup.class.php:2084
|
2238 |
#, php-format
|
2239 |
+
msgid "Error with \"SHOW CREATE TABLE\" for %s."
|
2240 |
msgstr ""
|
2241 |
|
2242 |
+
#: lib/wassup.class.php:2090 lib/compat-lib/compat_wassup.class.php:2089
|
2243 |
#, php-format
|
2244 |
+
msgid "Table structure of table %s"
|
2245 |
msgstr ""
|
2246 |
|
2247 |
+
#: lib/wassup.class.php:2092 lib/compat-lib/compat_wassup.class.php:2091
|
2248 |
#, php-format
|
2249 |
+
msgid "Data contents of table %s"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
+
#: lib/wassup.class.php:2133 lib/compat-lib/compat_wassup.class.php:2132
|
2253 |
#, php-format
|
2254 |
+
msgid "%s Export ERROR: %s"
|
2255 |
msgstr ""
|
2256 |
|
2257 |
+
#: lib/wassup.class.php:2140 lib/compat-lib/compat_wassup.class.php:2139
|
2258 |
#, php-format
|
2259 |
+
msgid "%s Export ERROR: No data"
|
2260 |
msgstr ""
|
2261 |
|
2262 |
+
#: lib/wassup.class.php:2239 lib/compat-lib/compat_wassup.class.php:2238
|
2263 |
+
msgid "records exported!"
|
|
|
2264 |
msgstr ""
|
2265 |
|
2266 |
+
#: lib/wassup.class.php:2240 lib/compat-lib/compat_wassup.class.php:2239
|
2267 |
+
msgid "Last export record id"
|
|
|
|
|
2268 |
msgstr ""
|
2269 |
|
2270 |
+
#: lib/wassup.class.php:2262 lib/compat-lib/compat_wassup.class.php:2261
|
2271 |
+
msgid "Export failed!"
|
|
|
|
|
2272 |
msgstr ""
|
2273 |
|
2274 |
+
#: lib/wassup.class.php:2413 lib/wassup.class.php:2446
|
2275 |
+
#: lib/wassupadmin.php:1877 lib/compat-lib/compat_wassup.class.php:2410
|
2276 |
+
#: lib/compat-lib/compat_wassup.class.php:2443
|
2277 |
msgid "direct hit"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: lib/wassup.class.php:2424 lib/wassup.class.php:2427
|
2281 |
+
#: lib/compat-lib/compat_wassup.class.php:2421
|
2282 |
+
#: lib/compat-lib/compat_wassup.class.php:2424
|
2283 |
msgid "from your site"
|
2284 |
msgstr ""
|
2285 |
|
2286 |
+
#: lib/wassupadmin.php:150
|
2287 |
msgid "paused"
|
2288 |
msgstr ""
|
2289 |
|
2290 |
+
#: lib/wassupadmin.php:180
|
2291 |
msgid "Sorry, delete failed!"
|
2292 |
msgstr ""
|
2293 |
|
2294 |
+
#: lib/wassupadmin.php:183
|
2295 |
msgid "Delete record failed!"
|
2296 |
msgstr ""
|
2297 |
|
2298 |
+
#: lib/wassupadmin.php:193 lib/wassupadmin.php:200 lib/wassupadmin.php:1676
|
2299 |
msgid "Hide Search"
|
2300 |
msgstr ""
|
2301 |
|
2302 |
+
#: lib/wassupadmin.php:205 lib/wassupadmin.php:249
|
2303 |
msgid "Collapse All"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
+
#: lib/wassupadmin.php:207 lib/wassupadmin.php:251 lib/wassupadmin.php:1085
|
2307 |
+
#: lib/wassupadmin.php:1717
|
2308 |
msgid "Expand All"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
+
#: lib/wassupadmin.php:210
|
2312 |
msgid "Expand Chronology"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
+
#: lib/wassupadmin.php:212 lib/wassupadmin.php:1718
|
2316 |
msgid "Collapse Chronology"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
+
#: lib/wassupadmin.php:272
|
2320 |
+
msgid "timed out!"
|
2321 |
+
msgstr ""
|
2322 |
+
|
2323 |
+
#: lib/wassupadmin.php:521 lib/wassupadmin.php:628 lib/wassupadmin.php:975
|
2324 |
msgid "Visitor Details"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
+
#: lib/wassupadmin.php:522
|
2328 |
msgid "Spy Visitors"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
+
#: lib/wassupadmin.php:523 lib/wassupadmin.php:608 lib/wassupadmin.php:626
|
2332 |
+
#: lib/wassupadmin.php:978
|
2333 |
msgid "Current Visitors Online"
|
2334 |
msgstr ""
|
2335 |
|
2336 |
+
#: lib/wassupadmin.php:530
|
2337 |
msgid "WassUp Stats"
|
2338 |
msgstr ""
|
2339 |
|
2340 |
+
#: lib/wassupadmin.php:550 lib/wassupadmin.php:552
|
2341 |
msgid "Settings"
|
2342 |
msgstr ""
|
2343 |
|
2344 |
+
#: lib/wassupadmin.php:806
|
2345 |
msgid "Nothing to do! Check a \"Delete\" option and try again"
|
2346 |
msgstr ""
|
2347 |
|
2348 |
+
#: lib/wassupadmin.php:810
|
2349 |
#, php-format
|
2350 |
msgid "%d records DELETED permanently!"
|
2351 |
msgstr ""
|
2352 |
|
2353 |
+
#: lib/wassupadmin.php:828
|
2354 |
msgid "0 records deleted!"
|
2355 |
msgstr ""
|
2356 |
|
2357 |
+
#: lib/wassupadmin.php:855
|
2358 |
msgid "Wassup uninstall option updated successfully"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
+
#: lib/wassupadmin.php:863
|
2362 |
msgid "Wassup options reset successfully"
|
2363 |
msgstr ""
|
2364 |
|
2365 |
+
#: lib/wassupadmin.php:874 lib/wassupadmin.php:888
|
2366 |
msgid "Sorry! You're not allowed to do that."
|
2367 |
msgstr ""
|
2368 |
|
2369 |
+
#: lib/wassupadmin.php:885
|
2370 |
msgid "Wassup spam options updated successfully"
|
2371 |
msgstr ""
|
2372 |
|
2373 |
+
#: lib/wassupadmin.php:925
|
2374 |
msgid "records deleted"
|
2375 |
msgstr ""
|
2376 |
|
2377 |
+
#: lib/wassupadmin.php:927
|
2378 |
msgid "Sorry! You're not allowed to delete records."
|
2379 |
msgstr ""
|
2380 |
|
2381 |
+
#: lib/wassupadmin.php:940
|
2382 |
msgid "WARNING: WassUp is NOT recording new statistics."
|
2383 |
msgstr ""
|
2384 |
|
2385 |
+
#: lib/wassupadmin.php:943
|
2386 |
msgid ""
|
2387 |
"To collect visitor data you must check \"Enable statistics recording\" in "
|
2388 |
"\"WassUp-Options: General Setup\" tab"
|
2389 |
msgstr ""
|
2390 |
|
2391 |
+
#: lib/wassupadmin.php:945
|
2392 |
msgid ""
|
2393 |
"To collect visitor data you must check \"Enable Statistics Recording for "
|
2394 |
"network\" in \"WassUp-Options: General Setup\" tab"
|
2395 |
msgstr ""
|
2396 |
|
2397 |
+
#: lib/wassupadmin.php:947 lib/wassupadmin.php:953
|
2398 |
msgid ""
|
2399 |
"Contact your site administrator about enabling statistics recording for the "
|
2400 |
"network."
|
2401 |
msgstr ""
|
2402 |
|
2403 |
+
#: lib/wassupadmin.php:951
|
2404 |
msgid "Contact your site administrator about enabling statistics recording."
|
2405 |
msgstr ""
|
2406 |
|
2407 |
+
#: lib/wassupadmin.php:975
|
2408 |
msgid "Latest Hits"
|
2409 |
msgstr ""
|
2410 |
|
2411 |
+
#: lib/wassupadmin.php:988
|
2412 |
+
msgid "Frequently Asked Questions"
|
2413 |
+
msgstr ""
|
2414 |
+
|
2415 |
+
#: lib/wassupadmin.php:996
|
2416 |
msgid "Donations are really welcome"
|
2417 |
msgstr ""
|
2418 |
|
2419 |
+
#: lib/wassupadmin.php:998
|
2420 |
#, php-format
|
2421 |
msgid "Check the %s for updates, bug reports and your hints to improve it"
|
2422 |
msgstr ""
|
2423 |
|
2424 |
+
#: lib/wassupadmin.php:998
|
2425 |
msgid "Official WassUp page"
|
2426 |
msgstr ""
|
2427 |
|
2428 |
+
#: lib/wassupadmin.php:999
|
2429 |
msgid "WassUp Support"
|
2430 |
msgstr ""
|
2431 |
|
2432 |
+
#: lib/wassupadmin.php:999
|
2433 |
msgid "Wassup Support"
|
2434 |
msgstr ""
|
2435 |
|
2436 |
+
#: lib/wassupadmin.php:1000
|
2437 |
msgid "Exec time"
|
2438 |
msgstr ""
|
2439 |
|
2440 |
+
#: lib/wassupadmin.php:1116 lib/wassupadmin.php:1302
|
2441 |
msgid "Legend"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
+
#: lib/wassupadmin.php:1116 lib/wassupadmin.php:1145 lib/wassupadmin.php:1302
|
2445 |
msgid "Logged-in Users"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
+
#: lib/wassupadmin.php:1116
|
2449 |
msgid "Comment Authors"
|
2450 |
msgstr ""
|
2451 |
|
2452 |
+
#: lib/wassupadmin.php:1116 lib/wassupadmin.php:1302
|
2453 |
msgid "Spiders/bots"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
+
#: lib/wassupadmin.php:1144 lib/wassupadmin.php:2188
|
2457 |
+
#: widgets/widget_functions.php:201
|
2458 |
+
#: lib/compat-lib/compat_wassup.class.php:2889
|
2459 |
msgid "Visitors online"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
+
#: lib/wassupadmin.php:1172
|
2463 |
msgid "From your site"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
+
#: lib/wassupadmin.php:1192 lib/wassupadmin.php:1785
|
2467 |
msgid "LOGGED IN USER"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
+
#: lib/wassupadmin.php:1197 lib/wassupadmin.php:1792
|
2471 |
msgid "ADMINISTRATOR"
|
2472 |
msgstr ""
|
2473 |
|
2474 |
+
#: lib/wassupadmin.php:1212 lib/wassupadmin.php:1813
|
2475 |
msgid "COMMENT AUTHOR"
|
2476 |
msgstr ""
|
2477 |
|
2478 |
+
#: lib/wassupadmin.php:1234 lib/wassupadmin.php:1869
|
2479 |
msgid "show raw table"
|
2480 |
msgstr ""
|
2481 |
|
2482 |
+
#: lib/wassupadmin.php:1234 lib/wassupadmin.php:1869
|
2483 |
msgid "Show the items as raw table"
|
2484 |
msgstr ""
|
2485 |
|
2486 |
+
#: lib/wassupadmin.php:1302
|
2487 |
msgid "Comments Authors"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
+
#: lib/wassupadmin.php:1306
|
2491 |
msgid "Pause"
|
2492 |
msgstr ""
|
2493 |
|
2494 |
+
#: lib/wassupadmin.php:1307
|
2495 |
msgid "Play"
|
2496 |
msgstr ""
|
2497 |
|
2498 |
+
#: lib/wassupadmin.php:1318
|
2499 |
msgid "Show map"
|
2500 |
msgstr ""
|
2501 |
|
2502 |
+
#: lib/wassupadmin.php:1318
|
2503 |
msgid "Show ip geo location on map"
|
2504 |
msgstr ""
|
2505 |
|
2506 |
+
#: lib/wassupadmin.php:1324
|
2507 |
msgid "Spy items by"
|
2508 |
msgstr ""
|
2509 |
|
2510 |
+
#: lib/wassupadmin.php:1371
|
2511 |
msgid "WassUp recording is disabled"
|
2512 |
msgstr ""
|
2513 |
|
2514 |
+
#: lib/wassupadmin.php:1373
|
2515 |
msgid "WassUp recording is disabled for network."
|
2516 |
msgstr ""
|
2517 |
|
2518 |
+
#: lib/wassupadmin.php:1523
|
2519 |
msgid "Show details from the last"
|
2520 |
msgstr ""
|
2521 |
|
2522 |
+
#: lib/wassupadmin.php:1532
|
2523 |
msgid "Items per page"
|
2524 |
msgstr ""
|
2525 |
|
2526 |
+
#: lib/wassupadmin.php:1542
|
2527 |
msgid "Filter items for"
|
2528 |
msgstr ""
|
2529 |
|
2530 |
+
#: lib/wassupadmin.php:1600
|
2531 |
msgid "Visits"
|
2532 |
msgstr ""
|
2533 |
|
2534 |
+
#: lib/wassupadmin.php:1601
|
2535 |
msgid "Pageviews"
|
2536 |
msgstr ""
|
2537 |
|
2538 |
+
#: lib/wassupadmin.php:1602
|
2539 |
msgid "Pages/Visits"
|
2540 |
msgstr ""
|
2541 |
|
2542 |
+
#: lib/wassupadmin.php:1618
|
2543 |
msgid "Spams"
|
2544 |
msgstr ""
|
2545 |
|
2546 |
+
#: lib/wassupadmin.php:1628
|
2547 |
msgid "Spam/Malware Options"
|
2548 |
msgstr ""
|
2549 |
|
2550 |
+
#: lib/wassupadmin.php:1634
|
2551 |
msgid "Enable Spam and Malware Check on Records"
|
2552 |
msgstr ""
|
2553 |
|
2554 |
+
#: lib/wassupadmin.php:1637
|
2555 |
msgid "Record attack/exploit attempts (libwww-perl agent)"
|
2556 |
msgstr ""
|
2557 |
|
2558 |
+
#: lib/wassupadmin.php:1646
|
2559 |
msgid "refresh screen"
|
2560 |
msgstr ""
|
2561 |
|
2562 |
+
#: lib/wassupadmin.php:1648
|
2563 |
#, php-format
|
2564 |
msgid "Auto refresh in %s seconds"
|
2565 |
msgstr ""
|
2566 |
|
2567 |
+
#: lib/wassupadmin.php:1653
|
2568 |
msgid "hide chart"
|
2569 |
msgstr ""
|
2570 |
|
2571 |
+
#: lib/wassupadmin.php:1653
|
2572 |
msgid "Hide the chart"
|
2573 |
msgstr ""
|
2574 |
|
2575 |
+
#: lib/wassupadmin.php:1653
|
2576 |
msgid "Hide chart"
|
2577 |
msgstr ""
|
2578 |
|
2579 |
+
#: lib/wassupadmin.php:1655
|
2580 |
msgid "show chart"
|
2581 |
msgstr ""
|
2582 |
|
2583 |
+
#: lib/wassupadmin.php:1655
|
2584 |
msgid "Show the chart"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
+
#: lib/wassupadmin.php:1655
|
2588 |
msgid "Show chart"
|
2589 |
msgstr ""
|
2590 |
|
2591 |
+
#: lib/wassupadmin.php:1672
|
2592 |
#, php-format
|
2593 |
msgid "Top Stats for %s"
|
2594 |
msgstr ""
|
2595 |
|
2596 |
+
#: lib/wassupadmin.php:1672
|
2597 |
msgid "Show top stats"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: lib/wassupadmin.php:1674
|
2601 |
#, php-format
|
2602 |
msgid "Top stats for %s in popup"
|
2603 |
msgstr ""
|
2604 |
|
2605 |
+
#: lib/wassupadmin.php:1682
|
2606 |
#, php-format
|
2607 |
msgid "%s matches found for search"
|
2608 |
msgstr ""
|
2609 |
|
2610 |
+
#: lib/wassupadmin.php:1686
|
2611 |
#, php-format
|
2612 |
msgid "%s items marked for IP"
|
2613 |
msgstr ""
|
2614 |
|
2615 |
+
#: lib/wassupadmin.php:1687
|
2616 |
msgid "Filter by marked IP"
|
2617 |
msgstr ""
|
2618 |
|
2619 |
+
#: lib/wassupadmin.php:1748
|
2620 |
msgid "Records display interrupted."
|
2621 |
msgstr ""
|
2622 |
|
2623 |
+
#: lib/wassupadmin.php:1750
|
2624 |
msgid "Unable to display records."
|
2625 |
msgstr ""
|
2626 |
|
2627 |
+
#: lib/wassupadmin.php:1819
|
2628 |
msgid "FEEDREADER"
|
2629 |
msgstr ""
|
2630 |
|
2631 |
+
#: lib/wassupadmin.php:1821
|
2632 |
msgid "SUBSCRIBER(S)"
|
2633 |
msgstr ""
|
2634 |
|
2635 |
+
#: lib/wassupadmin.php:1824
|
2636 |
msgid "SPIDER"
|
2637 |
msgstr ""
|
2638 |
|
2639 |
+
#: lib/wassupadmin.php:1859 lib/wassupadmin.php:1864
|
2640 |
msgid "delete"
|
2641 |
msgstr ""
|
2642 |
|
2643 |
+
#: lib/wassupadmin.php:1859
|
2644 |
msgid "Delete ALL marked records with this IP"
|
2645 |
msgstr ""
|
2646 |
|
2647 |
+
#: lib/wassupadmin.php:1861
|
2648 |
msgid "unmark"
|
2649 |
msgstr ""
|
2650 |
|
2651 |
+
#: lib/wassupadmin.php:1861
|
2652 |
msgid "UnMark IP"
|
2653 |
msgstr ""
|
2654 |
|
2655 |
+
#: lib/wassupadmin.php:1864
|
2656 |
msgid "Delete this record"
|
2657 |
msgstr ""
|
2658 |
|
2659 |
+
#: lib/wassupadmin.php:1866
|
2660 |
msgid "mark"
|
2661 |
msgstr ""
|
2662 |
|
2663 |
+
#: lib/wassupadmin.php:1866
|
2664 |
msgid "Mark IP"
|
2665 |
msgstr ""
|
2666 |
|
2667 |
+
#: lib/wassupadmin.php:1909
|
2668 |
msgid "SEARCH ENGINE"
|
2669 |
msgstr ""
|
2670 |
|
2671 |
+
#: lib/wassupadmin.php:1909
|
2672 |
msgid "page"
|
2673 |
msgstr ""
|
2674 |
|
2675 |
+
#: lib/wassupadmin.php:1910
|
2676 |
msgid "KEYWORDS"
|
2677 |
msgstr ""
|
2678 |
|
2679 |
+
#: lib/wassupadmin.php:1933
|
2680 |
msgid "Probably SPAM!"
|
2681 |
msgstr ""
|
2682 |
|
2683 |
+
#: lib/wassupadmin.php:1935
|
2684 |
msgid "Referer Spam"
|
2685 |
msgstr ""
|
2686 |
|
2687 |
+
#: lib/wassupadmin.php:1939
|
2688 |
msgid "Comment Spam"
|
2689 |
msgstr ""
|
2690 |
|
2691 |
+
#: lib/wassupadmin.php:1947
|
2692 |
msgid "Probably hack/malware attempt!"
|
2693 |
msgstr ""
|
2694 |
|
2695 |
+
#: lib/wassupadmin.php:1974
|
2696 |
msgid "BROWSER"
|
2697 |
msgstr ""
|
2698 |
|
2699 |
+
#: lib/wassupadmin.php:1977
|
2700 |
msgid "RESOLUTION"
|
2701 |
msgstr ""
|
2702 |
|
2703 |
+
#: lib/wassupadmin.php:2040
|
2704 |
+
msgid "Too few records to print chart"
|
2705 |
msgstr ""
|
2706 |
|
2707 |
+
#: lib/wassupadmin.php:2048
|
2708 |
+
msgid "Graph of visitor hits"
|
2709 |
msgstr ""
|
2710 |
|
2711 |
+
#: lib/wassupadmin.php:2057
|
2712 |
#, php-format
|
2713 |
msgid "Invalid page request %s"
|
2714 |
msgstr ""
|
2715 |
|
2716 |
+
#: lib/wassupadmin.php:2122 lib/compat-lib/compat_wassup.class.php:2823
|
2717 |
msgid "Stats"
|
2718 |
msgstr ""
|
2719 |
|
2720 |
+
#: lib/wassupadmin.php:2122 lib/compat-lib/compat_wassup.class.php:2823
|
2721 |
msgid "More"
|
2722 |
msgstr ""
|
2723 |
|
2724 |
+
#: lib/wassupadmin.php:2124 lib/wassupadmin.php:2159
|
2725 |
+
#: lib/compat-lib/compat_wassup.class.php:2825
|
2726 |
+
#: lib/compat-lib/compat_wassup.class.php:2860
|
2727 |
msgid "visitor stats chart"
|
2728 |
msgstr ""
|
2729 |
|
2730 |
+
#: lib/wassupadmin.php:2154 lib/compat-lib/compat_wassup.class.php:2855
|
2731 |
msgid "More Stats"
|
2732 |
msgstr ""
|
2733 |
|
2734 |
+
#: lib/wassupadmin.php:2235 lib/compat-lib/compat_wassup.class.php:2936
|
2735 |
msgid "Registered users"
|
2736 |
msgstr ""
|
2737 |
|
2738 |
+
#: lib/wassupadmin.php:2245 widgets/widget_functions.php:200
|
2739 |
+
#: lib/compat-lib/compat_wassup.class.php:2946
|
2740 |
msgid "Visitor online"
|
2741 |
msgstr ""
|
2742 |
|
2743 |
+
#: lib/wassupadmin.php:2250 lib/compat-lib/compat_wassup.class.php:2951
|
2744 |
msgid "No online data!"
|
2745 |
msgstr ""
|
2746 |
|
2747 |
+
#: lib/wassupadmin.php:2254 widgets/widget_functions.php:105
|
2748 |
+
#: lib/compat-lib/compat_wassup.class.php:2955
|
2749 |
msgid "powered by"
|
2750 |
msgstr ""
|
2751 |
|
2752 |
+
#: lib/wassupadmin.php:2254 widgets/widget_functions.php:105
|
2753 |
+
#: lib/compat-lib/compat_wassup.class.php:2955
|
2754 |
msgid "Real Time Visitors Tracking"
|
2755 |
msgstr ""
|
2756 |
|
2757 |
+
#: widgets/widgets.php:56 lib/compat-lib/compat_widget.php:65
|
2758 |
+
msgid "base widget"
|
2759 |
+
msgstr ""
|
2760 |
+
|
2761 |
+
#: widgets/widgets.php:100 widgets/widgets.php:248 widgets/widgets.php:462
|
2762 |
+
#: lib/compat-lib/compat_widget.php:106
|
2763 |
msgid "Widget style options"
|
2764 |
msgstr ""
|
2765 |
|
2766 |
+
#: widgets/widgets.php:102 widgets/widgets.php:250 widgets/widgets.php:464
|
2767 |
+
#: lib/compat-lib/compat_widget.php:108
|
2768 |
#, php-format
|
2769 |
msgid "Class attribute for %s list:"
|
2770 |
msgstr ""
|
2771 |
|
2772 |
+
#: widgets/widgets.php:104 widgets/widgets.php:252 widgets/widgets.php:466
|
2773 |
+
#: lib/compat-lib/compat_widget.php:110
|
2774 |
msgid "Max. chars to display from left"
|
2775 |
msgstr ""
|
2776 |
|
2777 |
+
#: widgets/widgets.php:105 widgets/widgets.php:253 widgets/widgets.php:467
|
2778 |
+
#: lib/compat-lib/compat_widget.php:111
|
2779 |
msgid "enter \"0\" for theme default/line wrap of long texts"
|
2780 |
msgstr ""
|
2781 |
|
2782 |
+
#: widgets/widgets.php:200
|
|
|
|
|
|
|
|
|
2783 |
msgid "Online"
|
2784 |
msgstr ""
|
2785 |
|
2786 |
+
#: widgets/widgets.php:201
|
2787 |
msgid "Show counts of your site's visitors who are currently online."
|
2788 |
msgstr ""
|
2789 |
|
2790 |
+
#: widgets/widgets.php:211
|
2791 |
msgid "Online Now"
|
2792 |
msgstr ""
|
2793 |
|
2794 |
+
#: widgets/widgets.php:231
|
2795 |
msgid "Show online counts for:"
|
2796 |
msgstr ""
|
2797 |
|
2798 |
+
#: widgets/widgets.php:233
|
2799 |
msgid "All current visitors"
|
2800 |
msgstr ""
|
2801 |
|
2802 |
+
#: widgets/widgets.php:234 widgets/widget_functions.php:211
|
2803 |
msgid "Logged-in users"
|
2804 |
msgstr ""
|
2805 |
|
2806 |
+
#: widgets/widgets.php:236 widgets/widget_functions.php:231
|
2807 |
msgid "Regular visitors"
|
2808 |
msgstr ""
|
2809 |
|
2810 |
+
#: widgets/widgets.php:237 widgets/widget_functions.php:241
|
2811 |
msgid "Others"
|
2812 |
msgstr ""
|
2813 |
|
2814 |
+
#: widgets/widgets.php:241
|
2815 |
msgid "Online Users Details"
|
2816 |
msgstr ""
|
2817 |
|
2818 |
+
#: widgets/widgets.php:243
|
2819 |
msgid "Show online usernames to registered users"
|
2820 |
msgstr ""
|
2821 |
|
2822 |
+
#: widgets/widgets.php:244
|
2823 |
msgid "Show country flags of users online"
|
2824 |
msgstr ""
|
2825 |
|
2826 |
+
#: widgets/widgets.php:257
|
2827 |
msgid "online counts are automatically cached for 1 minute."
|
2828 |
msgstr ""
|
2829 |
|
2830 |
+
#: widgets/widgets.php:258 widgets/widgets.php:472
|
2831 |
msgid "empty results are not displayed."
|
2832 |
msgstr ""
|
2833 |
|
2834 |
+
#: widgets/widgets.php:369
|
2835 |
msgid "Top Stats"
|
2836 |
msgstr ""
|
2837 |
|
2838 |
+
#: widgets/widgets.php:370
|
2839 |
msgid ""
|
2840 |
"List your site's most popular or trending items from Wassup's latest stats "
|
2841 |
"data."
|
2842 |
msgstr ""
|
2843 |
|
2844 |
+
#: widgets/widgets.php:403
|
2845 |
msgid "of first checked item below"
|
2846 |
msgstr ""
|
2847 |
|
2848 |
+
#: widgets/widgets.php:405
|
2849 |
msgid "List Top Results for"
|
2850 |
msgstr ""
|
2851 |
|
2852 |
+
#: widgets/widgets.php:409
|
2853 |
msgid "Stat item"
|
2854 |
msgstr ""
|
2855 |
|
2856 |
+
#: widgets/widgets.php:410
|
2857 |
msgid "max limit"
|
2858 |
msgstr ""
|
2859 |
|
2860 |
+
#: widgets/widgets.php:412
|
2861 |
msgid "Titles of posts and pages"
|
2862 |
msgstr ""
|
2863 |
|
2864 |
+
#: widgets/widgets.php:412 widgets/widget_functions.php:414
|
2865 |
msgid "Latest articles"
|
2866 |
msgstr ""
|
2867 |
|
2868 |
+
#: widgets/widgets.php:418
|
2869 |
msgid "Search engine searches"
|
2870 |
msgstr ""
|
2871 |
|
2872 |
+
#: widgets/widgets.php:418 widgets/widget_functions.php:422
|
2873 |
msgid "Latest searches"
|
2874 |
msgstr ""
|
2875 |
|
2876 |
+
#: widgets/widgets.php:424
|
2877 |
msgid "External links that generated referrals to your site"
|
2878 |
msgstr ""
|
2879 |
|
2880 |
+
#: widgets/widgets.php:424 widgets/widget_functions.php:430
|
2881 |
msgid "Latest referrers"
|
2882 |
msgstr ""
|
2883 |
|
2884 |
+
#: widgets/widgets.php:430 widgets/widget_functions.php:438
|
2885 |
msgid "Latest URL requests"
|
2886 |
msgstr ""
|
2887 |
|
2888 |
+
#: widgets/widgets.php:436
|
2889 |
msgid "Client browser software"
|
2890 |
msgstr ""
|
2891 |
|
2892 |
+
#: widgets/widgets.php:436 widgets/widget_functions.php:446
|
2893 |
msgid "Latest browsers"
|
2894 |
msgstr ""
|
2895 |
|
2896 |
+
#: widgets/widgets.php:442
|
2897 |
msgid "Client device/operating software"
|
2898 |
msgstr ""
|
2899 |
|
2900 |
+
#: widgets/widgets.php:442 widgets/widget_functions.php:454
|
2901 |
msgid "Latest OS"
|
2902 |
msgstr ""
|
2903 |
|
2904 |
+
#: widgets/widgets.php:448
|
2905 |
msgid "Visitors country/language"
|
2906 |
msgstr ""
|
2907 |
|
2908 |
+
#: widgets/widgets.php:448
|
2909 |
msgid "Latest locale"
|
2910 |
msgstr ""
|
2911 |
|
2912 |
+
#: widgets/widgets.php:455
|
2913 |
msgid "Show counts for each item"
|
2914 |
msgstr ""
|
2915 |
|
2916 |
+
#: widgets/widgets.php:456
|
2917 |
msgid "Statistics timeframe"
|
2918 |
msgstr ""
|
2919 |
|
2920 |
+
#: widgets/widgets.php:457
|
2921 |
msgid ""
|
2922 |
"select 1-30 days for latest top results, 1-12 hours for trending results"
|
2923 |
msgstr ""
|
2924 |
|
2925 |
+
#: widgets/widgets.php:458
|
2926 |
msgid "Refresh statistics every:"
|
2927 |
msgstr ""
|
2928 |
|
2929 |
+
#: widgets/widgets.php:471
|
2930 |
msgid "known spammers and spiders are excluded from results."
|
2931 |
msgstr ""
|
2932 |
|
2933 |
+
#: widgets/widgets.php:575
|
2934 |
+
msgid "Latest"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
#: widgets/widget_functions.php:240
|
2938 |
msgid "Other"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
+
#: widgets/widget_functions.php:416
|
2942 |
#, php-format
|
2943 |
msgid "%s articles"
|
2944 |
msgstr ""
|
2945 |
|
2946 |
+
#: widgets/widget_functions.php:424
|
2947 |
#, php-format
|
2948 |
msgid "%s searches"
|
2949 |
msgstr ""
|
2950 |
|
2951 |
+
#: widgets/widget_functions.php:432
|
2952 |
#, php-format
|
2953 |
msgid "%s referrers"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: widgets/widget_functions.php:440
|
2957 |
#, php-format
|
2958 |
msgid "%s requests"
|
2959 |
msgstr ""
|
2960 |
|
2961 |
+
#: widgets/widget_functions.php:448
|
2962 |
#, php-format
|
2963 |
msgid "%s browsers"
|
2964 |
msgstr ""
|
2965 |
|
2966 |
+
#: widgets/widget_functions.php:456
|
2967 |
#, php-format
|
2968 |
msgid "%s OS"
|
2969 |
msgstr ""
|
2970 |
|
2971 |
+
#: widgets/widget_functions.php:462
|
2972 |
+
msgid "Latest locales"
|
2973 |
+
msgstr ""
|
2974 |
+
|
2975 |
+
#: widgets/widget_functions.php:464
|
2976 |
#, php-format
|
2977 |
msgid "%s locale"
|
2978 |
msgstr ""
|
lib/action.php
CHANGED
@@ -41,7 +41,7 @@ function wassup_action_handler($action=""){
|
|
41 |
//check for invalid Wassup action requests
|
42 |
if(empty($action)){
|
43 |
if($_REQUEST['action']=="wassup_action_handler"){
|
44 |
-
$msg=__("Missing or invalid
|
45 |
die($msg);
|
46 |
}else{
|
47 |
//return not exit, in case is Wordpress action
|
@@ -56,8 +56,8 @@ function wassup_action_handler($action=""){
|
|
56 |
if(!is_user_logged_in()) die(__("Login required!","wassup"));
|
57 |
|
58 |
// check for valid hash
|
59 |
-
if(!isset($_REQUEST['whash'])){
|
60 |
-
die(__('Missing or invalid
|
61 |
}
|
62 |
$whash=$_REQUEST['whash'];
|
63 |
$wassup_settings=get_option('wassup_settings');
|
@@ -66,8 +66,8 @@ function wassup_action_handler($action=""){
|
|
66 |
}else{
|
67 |
$hashfail=true;
|
68 |
}
|
69 |
-
if($hashfail){
|
70 |
-
die(__('invalid
|
71 |
}
|
72 |
if(empty($current_user->ID)) $user=wp_get_current_user();
|
73 |
if(!class_exists('wassupOptions')){
|
@@ -75,11 +75,6 @@ function wassup_action_handler($action=""){
|
|
75 |
}
|
76 |
if(empty($wassup_options->wassup_table)) $wassup_options=new wassupOptions;
|
77 |
//#Ajax action / no output (unless error)
|
78 |
-
//ACTION: export request
|
79 |
-
if($action=="exportSQL"){
|
80 |
-
export_wassup();
|
81 |
-
exit;
|
82 |
-
}
|
83 |
// ACTION: DELETE ON THE FLY FROM VISITOR DETAILS VIEW
|
84 |
if($action=="deleteID"){
|
85 |
if(!empty($_REQUEST['id'])){
|
@@ -116,6 +111,17 @@ function wassup_action_handler($action=""){
|
|
116 |
die(__("Error","wassup").": missing id parameter");
|
117 |
}
|
118 |
exit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
}
|
120 |
//#Ajax action with html output
|
121 |
$vers='?ver='.WASSUPVERSION;
|
41 |
//check for invalid Wassup action requests
|
42 |
if(empty($action)){
|
43 |
if($_REQUEST['action']=="wassup_action_handler"){
|
44 |
+
$msg=__("Missing or invalid parameter!","wassup");
|
45 |
die($msg);
|
46 |
}else{
|
47 |
//return not exit, in case is Wordpress action
|
56 |
if(!is_user_logged_in()) die(__("Login required!","wassup"));
|
57 |
|
58 |
// check for valid hash
|
59 |
+
if(!isset($_REQUEST['whash'])){ //don't reveal 'whash' name
|
60 |
+
die(__('Missing or invalid parameter!','wassup'));
|
61 |
}
|
62 |
$whash=$_REQUEST['whash'];
|
63 |
$wassup_settings=get_option('wassup_settings');
|
66 |
}else{
|
67 |
$hashfail=true;
|
68 |
}
|
69 |
+
if($hashfail){ //don't reveal 'hash'
|
70 |
+
die(__('invalid parameter!','wassup'));
|
71 |
}
|
72 |
if(empty($current_user->ID)) $user=wp_get_current_user();
|
73 |
if(!class_exists('wassupOptions')){
|
75 |
}
|
76 |
if(empty($wassup_options->wassup_table)) $wassup_options=new wassupOptions;
|
77 |
//#Ajax action / no output (unless error)
|
|
|
|
|
|
|
|
|
|
|
78 |
// ACTION: DELETE ON THE FLY FROM VISITOR DETAILS VIEW
|
79 |
if($action=="deleteID"){
|
80 |
if(!empty($_REQUEST['id'])){
|
111 |
die(__("Error","wassup").": missing id parameter");
|
112 |
}
|
113 |
exit;
|
114 |
+
|
115 |
+
// ACTION: RETURN MESSAGE FROM AN EXPORT
|
116 |
+
}elseif($action=="exportmessage"){
|
117 |
+
$msg="";
|
118 |
+
$msgid='0';
|
119 |
+
if(isset($_REQUEST['mid'])) $msgid=$_REQUEST['mid'];
|
120 |
+
if(!empty($msgid)){
|
121 |
+
$msg=wassupDb::get_wassupmeta($msgid,'_export_msg');
|
122 |
+
}
|
123 |
+
echo $msg;
|
124 |
+
exit;
|
125 |
}
|
126 |
//#Ajax action with html output
|
127 |
$vers='?ver='.WASSUPVERSION;
|
lib/compatibility.php
CHANGED
@@ -29,44 +29,62 @@ if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])=
|
|
29 |
}
|
30 |
//-------------------------------------------------
|
31 |
/**
|
32 |
-
*
|
33 |
-
* @since v1.9.
|
34 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
function wassup_load_compat_modules(){
|
36 |
global $wp_version;
|
|
|
37 |
$is_compatible=true;
|
38 |
-
|
|
|
|
|
|
|
39 |
$is_compatible=false;
|
40 |
}else{
|
41 |
-
|
42 |
if(version_compare($wp_version,'3.1','<')){
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
include_once($wassup_compatlib.'/compat_functions.php');
|
50 |
}
|
51 |
-
}else{
|
52 |
-
$is_compatible=false;
|
53 |
}
|
54 |
-
|
|
|
55 |
if(file_exists($wassup_compatlib.'/compat_functions.php')){
|
56 |
include_once($wassup_compatlib.'/compat_functions.php');
|
57 |
}
|
58 |
}
|
59 |
-
|
60 |
if(version_compare($php_vers,'5.2','<')){
|
61 |
-
if(
|
62 |
-
|
63 |
-
}else{
|
64 |
-
$is_compatible=false;
|
65 |
}
|
66 |
}
|
67 |
}
|
68 |
return $is_compatible;
|
69 |
-
}
|
70 |
/**
|
71 |
* Show a message if this Wordpress version is incompatible with this copy of Wassup
|
72 |
* @since v1.9.1
|
@@ -90,8 +108,8 @@ function wassup_show_compat_message(){
|
|
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.'/
|
94 |
-
$msg= __("WARNING! WassUp's PHP compatibility
|
95 |
$msg .= ' '.sprintf(__('Download and install the full version of Wassup with compatibility library included directly from %s.','wassup'),$download_link);
|
96 |
}
|
97 |
}
|
29 |
}
|
30 |
//-------------------------------------------------
|
31 |
/**
|
32 |
+
* Return true if this Wordpress version is compatible with this Wassup
|
33 |
+
* @since v1.9.4
|
34 |
*/
|
35 |
+
function wassup_check_compatibility(){
|
36 |
+
global $wp_version;
|
37 |
+
$php_vers=phpversion();
|
38 |
+
$wassup_compatlib=WASSUPDIR.'/lib/compat-lib';
|
39 |
+
$is_compatible=true;
|
40 |
+
//check for minimum Wordpress compatibility
|
41 |
+
if(version_compare($wp_version,'4.5','<') || version_compare($php_vers,'5.2','<')){
|
42 |
+
if(version_compare($wp_version,'2.2','<')){
|
43 |
+
$is_compatible=false;
|
44 |
+
}elseif(version_compare($wp_version,'3.1','<') && function_exists('is_multisite') && is_multisite()){
|
45 |
+
$is_compatible=false;
|
46 |
+
}else{
|
47 |
+
$is_compatible=wassup_load_compat_modules();
|
48 |
+
}
|
49 |
+
}
|
50 |
+
return $is_compatible;
|
51 |
+
}
|
52 |
+
/** Load compatibility modules for Wordpress and PHP - @since v1.9.1 */
|
53 |
function wassup_load_compat_modules(){
|
54 |
global $wp_version;
|
55 |
+
$php_vers=phpversion();
|
56 |
$is_compatible=true;
|
57 |
+
$wassup_compatlib=WASSUPDIR.'/lib/compat-lib';
|
58 |
+
if(!file_exists($wassup_compatlib.'/compat_wp.php') && version_compare($wp_version,'3.1','<')){
|
59 |
+
$is_compatible=false;
|
60 |
+
}elseif(!file_exists($wassup_compatlib.'/compat_wassup.class.php') && version_compare($php_vers,'5.2','<')){
|
61 |
$is_compatible=false;
|
62 |
}else{
|
63 |
+
//Wordpress 2.8-3.1 & PHP 4.1-5.2 compatibility
|
64 |
if(version_compare($wp_version,'3.1','<')){
|
65 |
+
require_once($wassup_compatlib.'/compat_wp.php');
|
66 |
+
include_once($wassup_compatlib.'/compat_functions.php');
|
67 |
+
//load 'Wassup_Widget' base widget without the 'WP_Widget' parent class
|
68 |
+
if(version_compare($wp_version,'2.8','<')){
|
69 |
+
if(!class_exists('Wassup_Widget')){
|
70 |
+
include_once($wassup_compatlib.'/compat_widget.php');
|
|
|
71 |
}
|
|
|
|
|
72 |
}
|
73 |
+
//Wordpress 3.1-4.5 & PHP 4.1-5.2 compatibility
|
74 |
+
}elseif(version_compare($wp_version,'4.5','<') || version_compare($php_vers,'5.2','<')){
|
75 |
if(file_exists($wassup_compatlib.'/compat_functions.php')){
|
76 |
include_once($wassup_compatlib.'/compat_functions.php');
|
77 |
}
|
78 |
}
|
79 |
+
//PHP 4.1-5.2 compatibility
|
80 |
if(version_compare($php_vers,'5.2','<')){
|
81 |
+
if(!class_exists('wassupOptions')){
|
82 |
+
include_once($wassup_compatlib.'/compat_wassup.class.php');
|
|
|
|
|
83 |
}
|
84 |
}
|
85 |
}
|
86 |
return $is_compatible;
|
87 |
+
} //end wassup_load_compat_modules
|
88 |
/**
|
89 |
* Show a message if this Wordpress version is incompatible with this copy of Wassup
|
90 |
* @since v1.9.1
|
108 |
if(function_exists('is_multisite') && is_multisite()){
|
109 |
$msg =__("Sorry, WassUp requires WordPress 3.1 or higher to work in multisite setups","wassup");
|
110 |
}
|
111 |
+
}elseif(version_compare($php_vers,'5.2','<') && !file_exists($wassup_compatlib.'/compat_wassup.class.php')){
|
112 |
+
$msg= __("WARNING! WassUp's PHP compatibility modules are missing.","wassup");
|
113 |
$msg .= ' '.sprintf(__('Download and install the full version of Wassup with compatibility library included directly from %s.','wassup'),$download_link);
|
114 |
}
|
115 |
}
|
lib/faq.php
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Displays a list of frequently asked questions related to Wassup
|
4 |
+
*
|
5 |
+
* @package WassUp Real-time Analytics
|
6 |
+
* @subpackage faq.php
|
7 |
+
* @author helened (http://helenesit.com)
|
8 |
+
* @since v.1.9.3
|
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 |
+
/** Display a list of questions and answers about WassUp @since v1.9.4 */
|
27 |
+
function wassup_faq(){
|
28 |
+
global $wassup_options;
|
29 |
+
$GMapsAPI_signup="https://developers.google.com/maps/documentation/javascript/get-api-key#key"; //v3 key signup
|
30 |
+
//wassup-options menu link
|
31 |
+
if(is_network_admin()) $options_link=network_admin_url('admin.php?page=wassup-options');
|
32 |
+
else $options_link=admin_url('admin.php?page=wassup-options');
|
33 |
+
?>
|
34 |
+
<div id="wassup_faq-1" class="optionspanel">
|
35 |
+
<ol>
|
36 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I add WassUp's chart to my admin dashboard?","wassup");?></span><br/>
|
37 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Check the box for \"Enable widget/small chart in admin dashboard\" under %s tab.","wassup"),'<span class="code">WassUp >> '.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>');?></span></li>
|
38 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I display WassUp widgets on my site?","wassup");?></span><br/>
|
39 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo __("From Wordpress widgets panel, drag the \"WassUp Online\" widget or the \"Wassup Top Stats\" widget from the list of available widgets on the left into your theme's \"Sidebar\" or \"Footer\" area on the right or use the Customizer to add Wassup widgets interactively.","wassup");?></span></li>
|
40 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("My Wordpress theme is not widget ready. Is it possible to display WassUp widgets on my site?","wassup");?></span><br/>
|
41 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo __("Yes. Insert the template tag \"wassup_sidebar()\" into your theme's \"sidebar.php\" file to display Wassup widgets as a single combined widget on your site.","wassup");?></span></li>
|
42 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I view the real-time visitor geolocation map in WassUp?","wassup");?></span><br/>
|
43 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Check the box for \"Display a GEO IP Map in spy visitors view\" in %s and save, then navigate to %s panel to see the map.","wassup"),'<span class="code">WassUp >> '.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>','<span class="code">WassUp >><nobr>'.__("SPY Visitors","wassup").'</nobr></span>');?></span></li>
|
44 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("The map has vanished and I get a message like: \"Oops, something went wrong\" or \"Google has disabled use of the Maps API for this application\". How do I fix this?","wassup");?></span><br/>
|
45 |
+
<strong>A:</strong> <span class="faq-answer"><?php
|
46 |
+
echo sprintf(__("Try upgrading to the latest version of Wassup, or go to Wassup-Options and click the Reset-to-Default button if you have already upgraded, or sign up for your own %s and enter it under \"Spy Visitors settings\" in %s tab.","wassup"),
|
47 |
+
'<a href='.$GMapsAPI_signup.'>Google!Maps API key</a>','<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>');?></span></li>
|
48 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I exclude a visitor from being recorded?","wassup");?></span><br/>
|
49 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Navigate to %s tab and enter a visitor's username, IP address, or hostname into the appropriate text area for that \"Recording Exclusion\" type.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'&tab=2">'.__("Filters & Exclusions","wassup").'</a>]</nobr></span>');?></span></li>
|
50 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I stop (temporarily) WassUp from recording new visits on my site?","wassup");?></span><br/>
|
51 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Uncheck the box for \"Enable statistics recording\" under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>');?></span></li>
|
52 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("In Wordpress multisite, how do I stop (temporarily) WassUp from recording new visits on all sites in the network?","wassup");?></span><br/>
|
53 |
+
<strong>A#1:</strong> <span class="faq-answer"><?php echo sprintf(__("If plugin is \"network activated\", login as network admin, go to the Network admin dashboard, navigate to %s tab and Uncheck the box for \"Enable Statistics Recording for network\" and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</span>');?></span><br/>
|
54 |
+
<strong>A#2:</strong> <span class="faq-answer"><?php echo sprintf(__("If plugin is NOT \"network activated\", login as network admin, go to the main site/parent domain admin dashboard, navigate to %s tab, then Uncheck the box for \"Enable Statistics Recording for network\" and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>');?></span>
|
55 |
+
</li>
|
56 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("No data is being displayed; or \"Visitor Details\" panel show 0 records for the last 24 hours. How do I fix this?","wassup");?></span><br/>
|
57 |
+
<strong>A #1:</strong> <span class="faq-answer"><?php echo sprintf(__("Check the box for \"Enable statistics recording\" setting under %s tab and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>');?></span><br/>
|
58 |
+
<strong>A #2:</strong> <span class="faq-answer"><?php echo sprintf(__("Click the [Reset to Default] button under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>');?></span><br/>
|
59 |
+
<strong>A #3:</strong> <span class="faq-answer"><?php echo sprintf(__("Navigate to %s tab and uncheck the \"MySQL Delayed Insert\" setting and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'&tab=3">'.__("Manage File & Data","wassup").'</a>]</nobr></span>');?></span><br/>
|
60 |
+
<strong>A #4:</strong> <span class="faq-answer"><?php echo __("Deactivate and Re-activate Wassup from Wordpress Plugins panel.","wassup");?></span><br/>
|
61 |
+
<strong>A #5:</strong> <span class="faq-answer"><?php echo sprintf(__("If you have access to MySql/phpMyAdmin on your host server, run the MySql command %s to repair and release any locks on wassup table. Note that wassup table name may be different in other Wordpress setups.","wassup"),'<code>REPAIR TABLE '.$wassup_options->wassup_table.'</code>');?></span><br/>
|
62 |
+
<strong>A #6:</strong> <span class="faq-answer"><?php echo __("As a last resort, uninstall WassUp cleanly (delete data and files) and reinstall it.","wassup");?></span></li>
|
63 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("My popular web site is hosted on a shared server with restrictive database size limits. How do I prevent WassUp's table from growing too big for my allocated quota?","wassup");?></span><br/>
|
64 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Navigate to %s tab and enable the setting for \"Auto Delete\" of old records and/or check the box to receive an email alert when the table size limit is exceeded.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'&tab=3">'.__("Manage File & Data","wassup").'</a>]</nobr></span>');?></span></li>
|
65 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("WassUp visitor counts are much lower than actual for my website. Why is there a discrepancy and how do I fix it?","wassup");?></span><br/>
|
66 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo __("Low visitor count is likely caused by page caching on your website. WassUp is incompatible with static page caching plugins such as WP Supercache, WP Cache, and Hyper Cache. To fix, uninstall your cache plugin or switch to a different (javascript-based) statistics plugin.","wassup");?></span></li>
|
67 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("Is there any caching plugin that works with WassUp?","wassup");?></span><br/>
|
68 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo __("There are no known caching plugins that are 100% compatible with WassUp at this time.","wassup");?></span></li>
|
69 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How can I make Wassup run faster?","wassup");?></span><br/>
|
70 |
+
<strong>A #1:</strong> <span class="faq-answer"><?php echo sprintf(__("Keep Wassup table size small by setting automatic delete of old records or do manual delete periodically under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'&tab=3">'.__("Manage File & Data","wassup").'</a>]</nobr></span>');?></span><br/>
|
71 |
+
<strong>A #2:</strong> <span class="faq-answer"><?php echo __("If using the \"Top Stats\" widget on your site, set refresh frequency to 15 minutes or higher.","wassup");?></span><br/>
|
72 |
+
<strong>A #3:</strong> <span class="faq-answer"><?php echo sprintf(__("Reduce the number of recording exclusions (by ip/hostname/username/url) under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'&tab=2">'.__("Filters & Exclusions","wassup").'</a>]</nobr></span>');?></span><br/>
|
73 |
+
<strong>A #4:</strong> <span class="faq-answer"><?php
|
74 |
+
$files='<span class="code"> akismet.class.php</span>';
|
75 |
+
echo sprintf(__("Delete the file(s) %s from the plugin subfolder 'lib' to stop Wassup from doing remote server queries for spam identification.","wassup"),$files);?></span><br/>
|
76 |
+
<strong>A #5:</strong> <span class="faq-answer"><?php echo sprintf(__("As a last resort, stop all spam/malware detection on new hits by unchecking \"Enable Spam and malware detection on records\" under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span></li>
|
77 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("Why does WassUp stats sometimes show more page views than actual pages clicked by a person?","wassup");?></span><br/>
|
78 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo __("\"Phantom\" page views can occur when a user's browser does automatic feed retrieval, link pre-fetching, a page refresh, or automatically adds your website to it's \"Top sites\" window (Safari). WassUp tracks these because they are valid requests from the browser and are sometimes indistinguishable from user link clicks.","wassup");?></span></li>
|
79 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I upgrade WassUp safely when my site has frequent visitors?","wassup");?></span><br/>
|
80 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("To upgrade WassUp when your site is busy, you must first disable statistics recording manually under %s tab, then do the plugin upgrade, and afterwards re-enable recording manually when the upgrade is complete and the plugin is active.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'">'.__("General Setup","wassup").'</a>]</nobr></span>');?></span></li>
|
81 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("An unspecified error occurred during plugin upgrade. What do I do next?","wassup");?></span><br/>
|
82 |
+
<strong>A:</strong> <span class="faq-answer"><?php echo __("Wait a few minutes. Do NOT re-attempt to upgrade nor try to activate the plugin again! An activation error with no explanation is probably due to your browser timing out, not an upgrade failure. WassUp continues it's upgrade in the background and will activate automatically when it is done. After a few minutes (5-10) has passed, revisit Wordpress admin Plugins panel and verify that Wassup plugin has activated.","wassup");?></span></li>
|
83 |
+
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I uninstall WassUp cleanly?","wassup");?></span><br/>
|
84 |
+
<strong>A #1:</strong> <span class="faq-answer"><?php echo __("From a single Wordpress site: navigate to Wordpress Plugins panel and deactivate WassUp plugin. Then, on the same page, click the \"delete\" link below WassUp name. This deletes both data and files permanently.","wassup");?></span><br/>
|
85 |
+
<strong>A #2:</strong> <span class="faq-answer"><?php echo __("From Wordpress multisite Network admin panel: navigate to Plugins panel and deactivate WassUp plugin. If the plugin is not \"network activated\", navigate to the main site/parent domain Plugins panel and deactivate Wassup plugin there, then return to Network admin Plugins panel. Click the \"delete\" link below WassUp name. This deletes both data and files permanently from the main site/parent domain and deletes Wassup data from all the subsites in the network.","wassup");?></span><br/>
|
86 |
+
<strong>A #3:</strong> <span class="faq-answer"><?php echo sprintf(__("From a subsite in Wordpress multisite: navigate to %s tab and check the box for \"Permanently remove WassUp data and settings\" and save. Next, go to the subsite's Plugins panel and deactivate WassUp plugin. This deletes the subsite's data permanently. No files are deleted (not needed).","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>[<a href="'.$options_link.'&tab=4">'.__("Uninstall","wassup").'</a>]</nobr></span>');?></span><br/>
|
87 |
+
<strong>A #4:</strong> <span class="faq-answer"><?php echo sprintf(__("From a Wordpress 2.x site: navigate to %s tab and check the box for \"Permanently remove WassUp data and settings\" and save. Next, go to Wordpress Plugins panel and deactivate WassUp plugin. This deletes the data permanently. To delete the plugin files from Wordpress 2.x, use an ftp client software on your PC or login to your host server's \"cpanel\" and use \"File Manager\" to delete the folder \"wassup\" from the %s directory on your host server.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >>[<a href="'.$options_link.'&tab=4">'.__("Uninstall","wassup").'</a>]</span>','<code>/wordpress/wp-content/plugins/</code>');?></span></li>
|
88 |
+
</ol>
|
89 |
+
<p class="legend"><?php echo sprintf(__("Visit the %s to find more answers to your WassUp questions.","wassup"),'<a href="http://wordpress.org/support/plugin/wassup">'.__("Plugin Forum","wassup").'</a>');?></p>
|
90 |
+
<br />
|
91 |
+
</div>
|
92 |
+
<?php
|
93 |
+
}
|
94 |
+
?>
|
lib/main.php
CHANGED
@@ -349,16 +349,19 @@ class wassup_checkComment{
|
|
349 |
} //end if !class_exists('wDetector')
|
350 |
|
351 |
/** Truncate $input string to a length of $max */
|
352 |
-
function stringShortener($input
|
353 |
-
|
354 |
-
|
|
|
|
|
355 |
}
|
356 |
//temporarily replace all %-hex chars with literals and trim the input string of whitespaces...re-encoded after truncation
|
357 |
-
$instring=
|
|
|
358 |
$inputlen=strlen($instring);
|
359 |
$max=(is_numeric($max))?(integer)$max:$inputlen;
|
360 |
if($max <$inputlen){
|
361 |
-
$separator=($
|
362 |
$modulus=(($max%2));
|
363 |
$halfMax=floor($max/2);
|
364 |
$begin="";
|
@@ -373,7 +376,7 @@ function stringShortener($input, $max=0, $separator="(...)", $exceedFromEnd=0){
|
|
373 |
}else{
|
374 |
$end=($exceedFromEnd)? substr($instring,$inputlen-$halfMax-1) :substr($instring,$inputlen-$halfMax);
|
375 |
}
|
376 |
-
|
377 |
$outstring=$begin.$separator.$end;
|
378 |
if(strlen($outstring) >= $inputlen){ //Because "Fir(...)fox" is longer than "Firefox"
|
379 |
$outstring=$instring;
|
@@ -812,11 +815,12 @@ function wGeolocateIP($ip) {
|
|
812 |
* Return an associative array containing the top statistics results from MySql query
|
813 |
* parameters are: stat_type, limit, from-condition (mysql)
|
814 |
* return array keys('top_count','top_item','visit_timestamp",["top_group","top_link"])
|
815 |
-
*
|
|
|
816 |
* @param string, integer, string
|
817 |
* @return array
|
818 |
*/
|
819 |
-
function
|
820 |
global $wpdb, $wassup_options, $wdebug_mode;
|
821 |
if(!class_exists('wassupOptions')){
|
822 |
if(!wassup_init()) return; //nothing to do
|
@@ -866,7 +870,7 @@ function wGetStats($stat_type, $stat_limit=10, $stat_condition="",$return_sql=fa
|
|
866 |
foreach ($exclude_array as $exclude_domain) {
|
867 |
$www='www\\.';
|
868 |
if(preg_match('#^(www\d?\.)(.+)#i',$exclude_domain,$pcs)>0){
|
869 |
-
if(!empty($pcs[1]))$www=str_replace('.','\\.',$pcs[1]);
|
870 |
$exclude_domain=$pcs[2];
|
871 |
}
|
872 |
//wildcard(*) allowed in domain @since v1.9
|
@@ -941,7 +945,7 @@ function wGetStats($stat_type, $stat_limit=10, $stat_condition="",$return_sql=fa
|
|
941 |
if($wdebug_mode)echo "\n<!-- ".__FUNCTION__." ERROR: ".$error_msg." -->";
|
942 |
}
|
943 |
return false;
|
944 |
-
} //end function
|
945 |
|
946 |
/**
|
947 |
* Display the top 10 stats in table columns
|
@@ -970,7 +974,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
970 |
$wassup_table=$wassup_options->wassup_table;
|
971 |
$blogurl=wassupURI::get_sitehome();
|
972 |
$url=parse_url($blogurl);
|
973 |
-
$sitedomain=preg_replace('/^www\./i','',$url['host']);
|
974 |
|
975 |
//extend php script timeout length for large tables
|
976 |
$stimeout=ini_get("max_execution_time");
|
@@ -1042,7 +1046,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1042 |
|
1043 |
//#output top 10 searches
|
1044 |
if ($top_ten['topsearch'] == 1) {
|
1045 |
-
$top_results
|
1046 |
?>
|
1047 |
<td<?php
|
1048 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1078,7 +1082,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1078 |
if ($top_ten['topreferrer'] == 1) {
|
1079 |
//to prevent browser timeouts, send <!--heartbeat--> output
|
1080 |
echo "\n<!--heartbeat-->";
|
1081 |
-
$top_results =
|
1082 |
?>
|
1083 |
<td<?php
|
1084 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1117,7 +1121,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1117 |
$top_results=array();
|
1118 |
if($top_ten['toprequest']==1){
|
1119 |
echo "\n<!--heartbeat-->\n";
|
1120 |
-
$top_results=
|
1121 |
?>
|
1122 |
<td<?php
|
1123 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1155,7 +1159,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1155 |
$top_results=array();
|
1156 |
if($top_ten['topbrowser']==1){
|
1157 |
echo "\n<!--heartbeat-->\n";
|
1158 |
-
$top_results=
|
1159 |
?>
|
1160 |
<td<?php
|
1161 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1188,7 +1192,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1188 |
$top_results=array();
|
1189 |
if($top_ten['topos']==1){
|
1190 |
echo "\n<!--heartbeat-->\n";
|
1191 |
-
$top_results=
|
1192 |
?>
|
1193 |
<td<?php
|
1194 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1220,7 +1224,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1220 |
$top_results=array();
|
1221 |
if($top_ten['toplocale']==1){
|
1222 |
echo "\n<!--heartbeat-->\n";
|
1223 |
-
$top_results=
|
1224 |
?>
|
1225 |
<td<?php
|
1226 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1254,7 +1258,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1254 |
$top_results=array();
|
1255 |
if($top_ten['topvisitor']==1){
|
1256 |
echo "\n<!--heartbeat-->\n";
|
1257 |
-
$top_results=
|
1258 |
?>
|
1259 |
<td<?php
|
1260 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1292,7 +1296,7 @@ function wassup_top10view ($from_date="",$to_date="",$res="",$top_limit=0,$title
|
|
1292 |
$top_results=array();
|
1293 |
if($top_ten['toppostid']==1){
|
1294 |
echo "\n<!--heartbeat-->\n";
|
1295 |
-
$top_results=
|
1296 |
?>
|
1297 |
<td<?php
|
1298 |
if($cols==0) echo ' class="firstcol"';
|
@@ -1580,7 +1584,10 @@ class WassupItems {
|
|
1580 |
}
|
1581 |
// Function to show main query and count items
|
1582 |
function calc_tot($Type,$Search="",$specific_where_clause=null,$distinct_type=null){
|
1583 |
-
global $wpdb,$wdebug_mode;
|
|
|
|
|
|
|
1584 |
$this->ItemsType=$Type;
|
1585 |
$this->searchString=$Search;
|
1586 |
$ss="";
|
@@ -1592,37 +1599,50 @@ class WassupItems {
|
|
1592 |
}else{
|
1593 |
$whereis= $this->_whereis . $ss;
|
1594 |
}
|
1595 |
-
$buffered="";
|
1596 |
//abort if there is nothing in totrecords var
|
1597 |
if(empty($this->totrecords) || !is_numeric($this->totrecords)){
|
1598 |
return;
|
1599 |
}
|
1600 |
-
//use "sql_buffer_result" to help speed up retrieval of large datasets
|
1601 |
-
if($this->totrecords >5000) $buffered="SQL_BUFFER_RESULT";
|
1602 |
// Switch by every (global) items type (visits, pageviews, spams, etc...)
|
1603 |
switch ($Type) {
|
1604 |
// This is the MAIN query to show the chronology
|
1605 |
case "main":
|
1606 |
-
//
|
1607 |
-
$
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1612 |
}
|
1613 |
}
|
1614 |
-
|
1615 |
-
if(
|
1616 |
-
|
1617 |
-
// "sql_buffer_result" select option helps in cases where it takes a long time to retrieve results.
|
1618 |
-
$qry = sprintf("SELECT $buffered `id`, `wassup_id`, max(`timestamp`) as max_timestamp, min(`timestamp`) as min_timestamp, count(`wassup_id`) as page_hits, `ip`, `hostname`, `urlrequested`, `referrer`, GROUP_CONCAT(DISTINCT `username` ORDER BY `username` SEPARATOR ', ') AS login_name, `comment_author`, `agent`, `browser`, `os`, `spider`, `feed`, max(`spam`) AS malware_type, max(`screen_res`) as resolution, `language`, `search`, `searchengine`, `searchpage`, `url_wpid` FROM `%s` WHERE %s GROUP BY `wassup_id` ORDER BY max_timestamp DESC %s",
|
1619 |
-
$this->tableName,
|
1620 |
-
$whereis,
|
1621 |
-
$this->Limit);
|
1622 |
-
$results = $wpdb->get_results($qry);
|
1623 |
-
//try without buffer
|
1624 |
-
if ((is_wp_error($results) || empty($results) || !is_array($results)) && !empty($this->totrecords) && !empty($buffered)) {
|
1625 |
-
$qry = sprintf("SELECT `id`, `wassup_id`, max(`timestamp`) as max_timestamp, min(`timestamp`) as min_timestamp, count(`wassup_id`) as page_hits, `ip`, `hostname`, `urlrequested`, `referrer`, GROUP_CONCAT(DISTINCT `username` ORDER BY `username` SEPARATOR ', ') AS login_name, `comment_author`, `agent`, `browser`, `os`, `spider`, `feed`, max(`spam`) AS malware_type, max(`screen_res`) as resolution, `language`, `search`, `searchengine`, `searchpage`, `url_wpid` FROM `%s` WHERE %s GROUP BY `wassup_id` ORDER BY max_timestamp DESC %s",
|
1626 |
$this->tableName,
|
1627 |
$whereis,
|
1628 |
$this->Limit);
|
@@ -1686,6 +1706,12 @@ class WassupItems {
|
|
1686 |
if(!empty($wip)&& $Search==$wip){
|
1687 |
//for IP-only search
|
1688 |
$ss=sprintf(" AND `ip`='%s'",$searchParam);
|
|
|
|
|
|
|
|
|
|
|
|
|
1689 |
}else{ //for general search
|
1690 |
$ss = sprintf(" AND (`ip` LIKE '%%%s%%' OR `hostname` LIKE '%%%s%%' OR `urlrequested` LIKE '%%%s%%' OR `agent` LIKE '%%%s%%' OR `referrer` LIKE '%%%s%%' OR `username` LIKE '%s%%' OR `comment_author` LIKE '%s%%')",
|
1691 |
$searchParam,
|
349 |
} //end if !class_exists('wDetector')
|
350 |
|
351 |
/** Truncate $input string to a length of $max */
|
352 |
+
function stringShortener($input,$max=0,$sep='(...)',$exceedFromEnd=0){
|
353 |
+
//check for valid input
|
354 |
+
$strng=rtrim($input);
|
355 |
+
if(empty($strng) || !is_string($input)){
|
356 |
+
return esc_attr($input); //v1.9.4 bugfix
|
357 |
}
|
358 |
//temporarily replace all %-hex chars with literals and trim the input string of whitespaces...re-encoded after truncation
|
359 |
+
$instring=rtrim(stripslashes(rawurldecode(html_entity_decode(wassupURI::disarm_attack($input))))," +\t");
|
360 |
+
if(empty($instring)) $instring=$input; //v1.9.4 bugfix
|
361 |
$inputlen=strlen($instring);
|
362 |
$max=(is_numeric($max))?(integer)$max:$inputlen;
|
363 |
if($max <$inputlen){
|
364 |
+
$separator=($sep)?$sep:'(...)';
|
365 |
$modulus=(($max%2));
|
366 |
$halfMax=floor($max/2);
|
367 |
$begin="";
|
376 |
}else{
|
377 |
$end=($exceedFromEnd)? substr($instring,$inputlen-$halfMax-1) :substr($instring,$inputlen-$halfMax);
|
378 |
}
|
379 |
+
//$extracted=substr($instring, strpos($instring,$begin)+strlen($begin),$inputlen-$max); //not used here
|
380 |
$outstring=$begin.$separator.$end;
|
381 |
if(strlen($outstring) >= $inputlen){ //Because "Fir(...)fox" is longer than "Firefox"
|
382 |
$outstring=$instring;
|
815 |
* Return an associative array containing the top statistics results from MySql query
|
816 |
* parameters are: stat_type, limit, from-condition (mysql)
|
817 |
* return array keys('top_count','top_item','visit_timestamp",["top_group","top_link"])
|
818 |
+
* function renamed from 'wGetStats' to avoid name conflicts
|
819 |
+
* @author Helene D. 2009-03-0$hostname=@gethostbyaddr($IP);4
|
820 |
* @param string, integer, string
|
821 |
* @return array
|
822 |
*/
|
823 |
+
function get_wassupstat($stat_type, $stat_limit=10, $stat_condition="",$return_sql=false) {
|
824 |
global $wpdb, $wassup_options, $wdebug_mode;
|
825 |
if(!class_exists('wassupOptions')){
|
826 |
if(!wassup_init()) return; //nothing to do
|
870 |
foreach ($exclude_array as $exclude_domain) {
|
871 |
$www='www\\.';
|
872 |
if(preg_match('#^(www\d?\.)(.+)#i',$exclude_domain,$pcs)>0){
|
873 |
+
if(!empty($pcs[1])) $www=str_replace('.','\\.',$pcs[1]);
|
874 |
$exclude_domain=$pcs[2];
|
875 |
}
|
876 |
//wildcard(*) allowed in domain @since v1.9
|
945 |
if($wdebug_mode)echo "\n<!-- ".__FUNCTION__." ERROR: ".$error_msg." -->";
|
946 |
}
|
947 |
return false;
|
948 |
+
} //end function get_wassupstat
|
949 |
|
950 |
/**
|
951 |
* Display the top 10 stats in table columns
|
974 |
$wassup_table=$wassup_options->wassup_table;
|
975 |
$blogurl=wassupURI::get_sitehome();
|
976 |
$url=parse_url($blogurl);
|
977 |
+
$sitedomain=preg_replace('/^www?[0-9a-z]\./i','',$url['host']);
|
978 |
|
979 |
//extend php script timeout length for large tables
|
980 |
$stimeout=ini_get("max_execution_time");
|
1046 |
|
1047 |
//#output top 10 searches
|
1048 |
if ($top_ten['topsearch'] == 1) {
|
1049 |
+
$top_results=get_wassupstat("searches",$top_limit,$top_condition);
|
1050 |
?>
|
1051 |
<td<?php
|
1052 |
if($cols==0) echo ' class="firstcol"';
|
1082 |
if ($top_ten['topreferrer'] == 1) {
|
1083 |
//to prevent browser timeouts, send <!--heartbeat--> output
|
1084 |
echo "\n<!--heartbeat-->";
|
1085 |
+
$top_results = get_wassupstat("referrers",$top_limit,$top_condition);
|
1086 |
?>
|
1087 |
<td<?php
|
1088 |
if($cols==0) echo ' class="firstcol"';
|
1121 |
$top_results=array();
|
1122 |
if($top_ten['toprequest']==1){
|
1123 |
echo "\n<!--heartbeat-->\n";
|
1124 |
+
$top_results=get_wassupstat("urlrequested",$top_limit,$top_condition);
|
1125 |
?>
|
1126 |
<td<?php
|
1127 |
if($cols==0) echo ' class="firstcol"';
|
1159 |
$top_results=array();
|
1160 |
if($top_ten['topbrowser']==1){
|
1161 |
echo "\n<!--heartbeat-->\n";
|
1162 |
+
$top_results=get_wassupstat("browser",$top_limit,$top_condition);
|
1163 |
?>
|
1164 |
<td<?php
|
1165 |
if($cols==0) echo ' class="firstcol"';
|
1192 |
$top_results=array();
|
1193 |
if($top_ten['topos']==1){
|
1194 |
echo "\n<!--heartbeat-->\n";
|
1195 |
+
$top_results=get_wassupstat("os",$top_limit,$top_condition);
|
1196 |
?>
|
1197 |
<td<?php
|
1198 |
if($cols==0) echo ' class="firstcol"';
|
1224 |
$top_results=array();
|
1225 |
if($top_ten['toplocale']==1){
|
1226 |
echo "\n<!--heartbeat-->\n";
|
1227 |
+
$top_results=get_wassupstat("language",$top_limit,$top_condition);
|
1228 |
?>
|
1229 |
<td<?php
|
1230 |
if($cols==0) echo ' class="firstcol"';
|
1258 |
$top_results=array();
|
1259 |
if($top_ten['topvisitor']==1){
|
1260 |
echo "\n<!--heartbeat-->\n";
|
1261 |
+
$top_results=get_wassupstat("visitor",$top_limit,$top_condition);
|
1262 |
?>
|
1263 |
<td<?php
|
1264 |
if($cols==0) echo ' class="firstcol"';
|
1296 |
$top_results=array();
|
1297 |
if($top_ten['toppostid']==1){
|
1298 |
echo "\n<!--heartbeat-->\n";
|
1299 |
+
$top_results=get_wassupstat("postid",$top_limit,$top_condition);
|
1300 |
?>
|
1301 |
<td<?php
|
1302 |
if($cols==0) echo ' class="firstcol"';
|
1584 |
}
|
1585 |
// Function to show main query and count items
|
1586 |
function calc_tot($Type,$Search="",$specific_where_clause=null,$distinct_type=null){
|
1587 |
+
global $wpdb,$current_user,$wdebug_mode;
|
1588 |
+
//get/set user-specific wassup_settings
|
1589 |
+
if(!is_object($current_user) || empty($current_user->ID)) wp_get_current_user();
|
1590 |
+
$wassup_user_settings=get_user_option('_wassup_settings',$current_user->ID);
|
1591 |
$this->ItemsType=$Type;
|
1592 |
$this->searchString=$Search;
|
1593 |
$ss="";
|
1599 |
}else{
|
1600 |
$whereis= $this->_whereis . $ss;
|
1601 |
}
|
|
|
1602 |
//abort if there is nothing in totrecords var
|
1603 |
if(empty($this->totrecords) || !is_numeric($this->totrecords)){
|
1604 |
return;
|
1605 |
}
|
|
|
|
|
1606 |
// Switch by every (global) items type (visits, pageviews, spams, etc...)
|
1607 |
switch ($Type) {
|
1608 |
// This is the MAIN query to show the chronology
|
1609 |
case "main":
|
1610 |
+
//New in v1.9.4: use temporary table to help speed up retrieval of large datasets
|
1611 |
+
$bigdata=false;
|
1612 |
+
$totrecords=$wpdb->get_var("SELECT COUNT(*) FROM $this->tableName");
|
1613 |
+
if($totrecords >50000) $bigdata=true;
|
1614 |
+
//main query
|
1615 |
+
if($bigdata){
|
1616 |
+
//extend PHP and MySql timeouts to prevent script hangs
|
1617 |
+
$stimeout=ini_get("max_execution_time");
|
1618 |
+
if(is_numeric($stimeout) && $stimeout >0 && $stimeout <180){
|
1619 |
+
$disabled_funcs=ini_get('disable_functions');
|
1620 |
+
if((empty($disabled_funcs) || strpos($disabled_funcs,'set_time_limit')===false) && !ini_get('safe_mode')){
|
1621 |
+
@set_time_limit(3*60);
|
1622 |
+
}
|
1623 |
+
}
|
1624 |
+
$mtimeout=$wpdb->get_var("SELECT @@session.wait_timeout AS mtimeout FROM dual");
|
1625 |
+
if(is_numeric($mtimeout) && $mtimeout<160) $result=$wpdb->query("SET wait_timeout=160");
|
1626 |
+
//use a temporary table for large datasets
|
1627 |
+
$tmptable='_wassup_'.$current_user->user_login.rand();
|
1628 |
+
//create temp table of records
|
1629 |
+
$qry1 = sprintf("CREATE TEMPORARY TABLE IF NOT EXISTS %s AS (SELECT `wassup_id`, max(`timestamp`) as max_timestamp, min(`timestamp`) as min_timestamp, count(`wassup_id`) as page_hits, GROUP_CONCAT(DISTINCT `username` ORDER BY `username` SEPARATOR '| ') AS login_name, max(`spam`) AS malware_type, max(`screen_res`) as resolution FROM %s WHERE %s GROUP BY `wassup_id` ORDER BY max_timestamp DESC %s); ",
|
1630 |
+
$tmptable,
|
1631 |
+
$this->tableName,
|
1632 |
+
$whereis,
|
1633 |
+
$this->Limit);
|
1634 |
+
$results = $wpdb->query($qry1);
|
1635 |
+
//get detail data using temp table
|
1636 |
+
if(!is_wp_error($results)){
|
1637 |
+
$qry2 = sprintf("SELECT a1.*, b1.id, b1.timestamp, b1.ip, b1.hostname, b1.referrer, b1.comment_author, b1.agent, b1.browser, b1.os, b1.spider, b1.feed, b1.language, b1.search, b1.searchengine, b1.searchpage, c1.urlrequested, c1.url_wpid FROM %1\$s a1, %2\$s b1, %2\$s c1 WHERE b1.wassup_id = a1.wassup_id AND b1.timestamp = (SELECT MIN(b2.timestamp) FROM %2\$s b2 WHERE b2.wassup_id = b1.wassup_id) AND c1.wassup_id = a1.wassup_id AND c1.timestamp = (SELECT MAX(c2.timestamp) FROM %2\$s c2 WHERE c2.wassup_id = c1.wassup_id); ",
|
1638 |
+
$tmptable,
|
1639 |
+
$this->tableName);
|
1640 |
+
$results = $wpdb->get_results($qry2);
|
1641 |
}
|
1642 |
}
|
1643 |
+
//old query fall back for small dataset or if error
|
1644 |
+
if(!$bigdata || is_wp_error($results) || empty($results) || !is_array($results)){
|
1645 |
+
$qry = sprintf("SELECT `wassup_id`, max(`timestamp`) as max_timestamp, min(`timestamp`) as min_timestamp, count(`wassup_id`) as page_hits, GROUP_CONCAT(DISTINCT `username` ORDER BY `username` SEPARATOR '| ') AS login_name, max(`spam`) AS malware_type, `id`, `ip`, `hostname`, `urlrequested`, `referrer`, `comment_author`, `agent`, `browser`, `os`, `spider`, `feed`, max(`screen_res`) as resolution, `language`, `search`, `searchengine`, `searchpage`, `url_wpid` FROM `%s` WHERE %s GROUP BY `wassup_id` ORDER BY max_timestamp DESC %s",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1646 |
$this->tableName,
|
1647 |
$whereis,
|
1648 |
$this->Limit);
|
1706 |
if(!empty($wip)&& $Search==$wip){
|
1707 |
//for IP-only search
|
1708 |
$ss=sprintf(" AND `ip`='%s'",$searchParam);
|
1709 |
+
//New in v1.9.4: separate url searches
|
1710 |
+
}elseif(strpos($Search,'/')!==FALSE){
|
1711 |
+
$ss = sprintf(" AND (`urlrequested` LIKE '%%%s%%' OR `agent` LIKE '%%%s%%' OR `referrer` LIKE '%%%s%%')",
|
1712 |
+
$searchParam,
|
1713 |
+
$searchParam,
|
1714 |
+
$searchParam);
|
1715 |
}else{ //for general search
|
1716 |
$ss = sprintf(" AND (`ip` LIKE '%%%s%%' OR `hostname` LIKE '%%%s%%' OR `urlrequested` LIKE '%%%s%%' OR `agent` LIKE '%%%s%%' OR `referrer` LIKE '%%%s%%' OR `username` LIKE '%s%%' OR `comment_author` LIKE '%s%%')",
|
1717 |
$searchParam,
|
lib/settings.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Displays settings form, Wassup wp_options values, and
|
4 |
*
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage settings.php
|
@@ -27,7 +27,6 @@ if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])=
|
|
27 |
* Form to change Wassup's wp_option settings and to show plugin info.
|
28 |
* - Shows both single site and network settings where applicable
|
29 |
* - Shows server settings that may affect plugin performance
|
30 |
-
* - Shows plugin support FAQ
|
31 |
* - Shows ways to donate $ towards continued plugin development
|
32 |
*
|
33 |
* @param integer
|
@@ -109,7 +108,7 @@ function wassup_optionsView($tab=0) {
|
|
109 |
?>
|
110 |
<p><?php echo sprintf(__("You can add a sidebar Widget with some useful statistics information by activating the %s widget from the %s.","wassup"), $wwidgets,$wwidgets_link);?></p>
|
111 |
<p style="padding:10px 0 10px 0;"><?php _e('Select the options you want for WassUp plugin','wassup'); ?></p><?php
|
112 |
-
if(empty($tab) || (!is_numeric($tab) && $tab!="donate"
|
113 |
if(isset($_POST['delete_now'])) $tab=3;
|
114 |
elseif(isset($_POST['submit-options'])) $tab=1;
|
115 |
elseif(isset($_POST['submit-options2'])) $tab=2;
|
@@ -119,7 +118,7 @@ function wassup_optionsView($tab=0) {
|
|
119 |
$tab=1;
|
120 |
if(!empty($_REQUEST['tab'])){
|
121 |
if (is_numeric($_REQUEST['tab']) && $_REQUEST['tab']>0 && $_REQUEST['tab']<7) $tab = (int)$_REQUEST['tab'];
|
122 |
-
elseif($_REQUEST['tab']=="donate"
|
123 |
}
|
124 |
}
|
125 |
}
|
@@ -152,10 +151,9 @@ function wassup_optionsView($tab=0) {
|
|
152 |
echo "\n";?>
|
153 |
<li id="opt-tab4" class="optionstab <?php if($tab=="4")echo ' ui-tabs-active';?>"><a href="#wassup_opt_frag-4"><span><?php _e("Uninstall","wassup");?></span></a></li><?php
|
154 |
}
|
155 |
-
//"donate"
|
156 |
echo "\n";?>
|
157 |
-
<li id="opt-tab-
|
158 |
-
<li id="opt-tab-donate" class="optionstab donatetab<?php if($tab=="donate" || $tab=="6")echo ' ui-tabs-active';?>"><a href="#wassup_opt_frag-6"><span><?php _e("Donate","wassup");?></span></a></li>
|
159 |
</ul>
|
160 |
|
161 |
<div id="wassup_opt_frag-1" class="optionspanel<?php if ($tab == "1") echo ' tabselected'; ?>"><br/><?php
|
@@ -193,8 +191,8 @@ function wassup_optionsView($tab=0) {
|
|
193 |
<?php
|
194 |
if(version_compare($wp_version,'2.7','>=')){ ?>
|
195 |
<h3><?php _e('User Permissions'); ?></h3>
|
196 |
-
<p class="description"><?php echo __("Gives selected users
|
197 |
-
echo __("Only administrators
|
198 |
<p><strong><?php _e('Set minimum user level that can view WassUp stats','wassup'); ?></strong>:
|
199 |
<select name="wassup_userlevel">
|
200 |
<?php $wassup_options->showFieldOptions("wassup_userlevel"); ?>
|
@@ -230,8 +228,8 @@ function wassup_optionsView($tab=0) {
|
|
230 |
?>
|
231 |
<p class="indent-opt"> <input type="checkbox" name="wassup_geoip_map" value="1" <?php echo $checked; ?> />
|
232 |
<strong><?php _e('Display a GEO IP Map in the spy visitors view','wassup'); ?></strong></p>
|
233 |
-
<p class="checkbox-indent"><strong>Google Maps API <?php _e("key","wassup");?>:</strong> <input type="text" name="wassup_googlemaps_key" id="wassup_googlemaps_key" size="40" value=<?php echo '"'.esc_attr($api_key).'"'.$disabled;?> /> - <a href="<?php echo $GMapsAPI_signup;?>" target="_blank"><?php _e("signup for your key","wassup");?></a>
|
234 |
-
<br/><?php echo __('
|
235 |
</p><br/>
|
236 |
<?php
|
237 |
$checked='checked="CHECKED"';
|
@@ -337,7 +335,13 @@ function wassup_optionsView($tab=0) {
|
|
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>
|
342 |
<p class="description"><?php _e("You can exclude a single visitor (by IP, hostname or username) or you can exclude a specific URL request from being stored in WassUp records.","wassup");
|
343 |
echo " ".__("Note that recording exceptions lower overall statistics counts and excessive exclusions can affect page load speed on slow host servers.","wassup");?>
|
@@ -346,25 +350,25 @@ function wassup_optionsView($tab=0) {
|
|
346 |
<p style="padding-top:0;padding-bottom:0;"><strong><?php echo __('Enter source IPs to omit from recording','wassup');?></strong>:
|
347 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
348 |
<textarea name="wassup_exclude" rows="2" style="width:60%;"><?php echo esc_url($wassup_options->wassup_exclude);?></textarea></span>
|
349 |
-
<span class="opt-note"
|
350 |
</p><br/>
|
351 |
<h3 class="indent-opt"><?php echo __("Exclude by Hostname","wassup");?></h3>
|
352 |
<p style="padding-top:0;padding-bottom:0;"><strong><?php echo __('Enter source hostnames to omit from recording','wassup');?></strong>:
|
353 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
354 |
<textarea name="wassup_exclude_host" rows="2" style="width:60%;"><?php echo esc_attr($wassup_options->wassup_exclude_host);?></textarea></span>
|
355 |
-
<span class="opt-note"
|
356 |
</p><br/>
|
357 |
<h3 class="indent-opt"><?php echo __("Exclude by Username","wassup");?></h3>
|
358 |
<p style="padding-top:0;"><strong><?php echo __('Enter usernames to omit from recording','wassup');?></strong>:
|
359 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
360 |
<textarea name="wassup_exclude_user" rows="2" style="width:60%;"><?php echo esc_attr($wassup_options->wassup_exclude_user);?></textarea></span>
|
361 |
-
<span class="opt-note"
|
362 |
</p><br/>
|
363 |
<h3 class="indent-opt"><?php echo __("Exclude by URL request","wassup");?></h3>
|
364 |
<p style="padding-top:0;"><strong><?php echo __('Enter URLs of page/post/feed to omit from recording','wassup');?></strong>:
|
365 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
366 |
<textarea name="wassup_exclude_url" rows="2" style="width:60%;"><?php echo esc_url($wassup_options->wassup_exclude_url);?></textarea></span>
|
367 |
-
<span class="opt-note"
|
368 |
</p><br />
|
369 |
<p class="submit"><input type="submit" name="submit-options2" id="submit-options2" class="submit-opt button button-left button-primary" value="<?php _e('Save Settings','wassup');?>" onclick="jQuery('#submit-options2').val('Saving...');" /> <input type="reset" name="reset" class="reset-opt button button-secondary" value="<?php _e('Reset','wassup');?>" /> - <input type="submit" name="reset-to-default" class="default-opt button button-caution wassup-button" value="<?php _e("Reset to Default", "wassup");?>" /></p>
|
370 |
<p class="opt-prev-next"><a href="<?php echo $options_link.'&tab=1';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php echo $options_link.'&tab=3';?>"><?php echo __("Next","wassup").'→';?></a> <a href="#wassupsettings" onclick="wScrollTop();return false;"><?php echo __("Top","wassup").'↑';?></a></p><br />
|
@@ -389,12 +393,9 @@ function wassup_optionsView($tab=0) {
|
|
389 |
<?php print $alert_msg; ?>
|
390 |
<p class="indent-opt"><input type="checkbox" name="wassup_remind_flag" value="1" <?php if($wassup_options->wassup_remind_flag==1) echo $checked;?>>
|
391 |
<strong><?php _e('Alert me','wassup'); ?></strong> (<?php _e('email to','wassup'); ?>: <strong><?php print $adminemail; ?></strong>) <?php _e('when table reaches','wassup'); ?> <input type="text" name="wassup_remind_mb" size="3" value="<?php echo (int)$wassup_options->wassup_remind_mb; ?>"> Mb</p>
|
392 |
-
<h3 class="indent-opt"><?php _e("Delete old records","wassup");?>:</h3
|
393 |
-
$exporturl=wp_nonce_url($options_link.'&tab=3&export=1','wassupexport-'.$current_user->ID);
|
394 |
-
echo "\n";?>
|
395 |
<p class="indent-opt description"><?php
|
396 |
-
echo
|
397 |
-
echo " ".__("Reload this screen after export to view export messages.", "wassup");?></p>
|
398 |
<p> <label for="do_delete_auto"><input type="checkbox" name="do_delete_auto" id="do_delete_auto" value="1" <?php if ($wassup_options->delete_auto!="never") echo $checked;?>/> <strong><?php _e("Automatically delete","wassup");?></strong>: </label>
|
399 |
<select name="delete_filter"><?php $wassup_options->showFieldOptions("delete_filter"); ?></select>
|
400 |
<nobr><?php _e("records older than", "wassup"); ?>
|
@@ -406,27 +407,43 @@ function wassup_optionsView($tab=0) {
|
|
406 |
<select name="delete_manual"><?php $wassup_options->showFieldOptions("delete_auto","never");?></select> <?php _e("once","wassup");?></nobr>
|
407 |
</p><?php
|
408 |
//Delete by record ID# - for use with export @since v1.9
|
|
|
409 |
$last_export_id=wassupDb::get_wassupmeta($wassup_table,'_export_recid-'.$current_user->ID);
|
410 |
if (empty($last_export_id) || !is_numeric($last_export_id))
|
411 |
$last_export_id=0;?>
|
412 |
<p> <label for="do_delete_recid"><input type="checkbox" name="do_delete_recid" id="do_delete_recid" value="1" /> <strong><?php _e("Delete all records up to record ID#","wassup");?></strong>:</label>
|
413 |
-
<input type="text" name="delete_recid" id="delete_recid" value="<?php if (!empty($_POST['delete_recid']) && is_numeric($_POST['delete_recid'])) echo $_POST['delete_recid']; else echo '0';?>" /> <nobr>(<?php echo __("Last
|
414 |
</p>
|
415 |
<p class="indent-opt"> <label for="do_delete_empty"><input type="checkbox" name="do_delete_empty" id="do_delete_empty" value="1"/> <strong><?php _e('Empty table','wassup');?></strong></label>
|
416 |
(<a class="export-wassup" href="<?php echo $exporturl;?>"><?php _e('export table in SQL format','wassup');?></a>)
|
417 |
</p>
|
418 |
<p style="margin-top:20px;">
|
419 |
-
|
|
|
420 |
</p>
|
421 |
<br/>
|
422 |
-
<h3><?php _e("Table Export
|
423 |
<p class="indent-opt description"><?php
|
424 |
-
echo __("
|
|
|
|
|
|
|
425 |
<p class="indent-opt"><label for="export_spam"> <input type="checkbox" name="export_spam" value="1" <?php if(!empty($wassup_options->export_spam)) echo $checked;?>/> <strong><?php echo __("Include spam records in exported data","wassup");?></strong></label><br>
|
426 |
-
<span class="opt-note"><?php if(empty($wassup_options->wassup_spamcheck)) echo __("Security NOTICE:
|
427 |
-
|
428 |
<p class="indent-opt"><label for="export_omit_recid"> <input type="checkbox" name="export_omit_recid" value="1" <?php if(!empty($wassup_options->export_omit_recid)) echo $checked;?>/> <strong><?php echo __("Omit record ID from exported fields","wassup");?></strong></label><br/>
|
429 |
-
<span class="opt-note"><?php echo __("Check this box when importing data into another Wassup table that already has records (appending data).","wassup");?></span
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
<br/>
|
431 |
<h3><?php _e("Table Optimization","wassup");?>:</h3>
|
432 |
<input type="hidden" name="wassup_dbengine" value="<?php echo $table_engine;?>"/>
|
@@ -589,10 +606,10 @@ function wassup_optionsView($tab=0) {
|
|
589 |
echo __("no limit/unknown","wassup");
|
590 |
}?></li>
|
591 |
<li><strong>WordPress <?php
|
592 |
-
$WPtimezone
|
593 |
-
if
|
594 |
-
else echo __('Time Offset','wassup');?></strong
|
595 |
-
if
|
596 |
echo $WPtimezone;
|
597 |
$wpoffset = (current_time('timestamp') - time())/3600;
|
598 |
}else{
|
@@ -1001,7 +1018,7 @@ function wassup_optionsView($tab=0) {
|
|
1001 |
</ul>
|
1002 |
<br />
|
1003 |
</div><!-- /sysinfo -->
|
1004 |
-
<p class="opt-prev-next"><a href="<?php echo $options_link.'&tab=2';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php if($has_uninstall_tab) echo $options_link.'&tab=4';else echo $options_link.'&tab=
|
1005 |
</div>
|
1006 |
<?php
|
1007 |
if($has_uninstall_tab){?>
|
@@ -1017,70 +1034,11 @@ function wassup_optionsView($tab=0) {
|
|
1017 |
<br /><p><?php echo sprintf(__("To help improve this plugin, we would appreciate your feedback at %s.","wassup"),'<a href="http://www.wpwp.org">www.wpwp.org</a>');?></p>
|
1018 |
<br /><br />
|
1019 |
<p class="submit"><input type="submit" name="submit-options4" id="submit-options4" class="submit-opt button button-left button-primary" value="<?php _e('Save Settings','wassup');?>" onclick="jQuery('#submit-options4').val('Saving...');"/> <input type="reset" name="reset" value="<?php _e('Reset','wassup');?>" class="reset-opt button button-secondary" /> - <input type="submit" name="reset-to-default" class="default-opt button button-caution wassup-button" value="<?php _e("Reset to Default", "wassup");?>" /></p>
|
1020 |
-
<p class="opt-prev-next"><a href="<?php echo $options_link.'&tab=3';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php echo $options_link.'&tab=
|
1021 |
</div><?php
|
1022 |
} //if has_uninstall_tab
|
1023 |
?>
|
1024 |
-
<div id="wassup_opt_frag-5" class="optionspanel
|
1025 |
-
<h3><?php echo __("Frequently Asked Questions","wassup");?></h3>
|
1026 |
-
<ol>
|
1027 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I add WassUp's chart to my admin dashboard?","wassup");?></span><br/>
|
1028 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Check the box for \"Enable widget/small chart in admin dashboard\" under %s tab.","wassup"),'<span class="code">WassUp >> '.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span></li>
|
1029 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I display WassUp widgets on my site?","wassup");?></span><br/>
|
1030 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo __("From Wordpress widgets panel, drag the \"WassUp Online\" widget or the \"Wassup Top Stats\" widget from the list of available widgets on the left into your theme's \"Sidebar\" or \"Footer\" area on the right or use the Customizer to add Wassup widgets interactively.","wassup");?></span></li>
|
1031 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("My Wordpress theme is not widget ready. Is it possible to display WassUp widgets on my site?","wassup");?></span><br/>
|
1032 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo __("Yes. Insert the template tag \"wassup_sidebar()\" into your theme's \"sidebar.php\" file to display Wassup widgets as a single combined widget on your site.","wassup");?></span></li>
|
1033 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I view the real-time visitor geolocation map in WassUp?","wassup");?></span><br/>
|
1034 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Check the box for \"Display a GEO IP Map in spy visitors view\" in %s tab and save, then navigate to %s panel to see the map.","wassup"),'<span class="code">WassUp >> '.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>','<span class="code">WassUp >><nobr>'.__("SPY Visitors","wassup").'</nobr></span>');?></span></li>
|
1035 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("The map has vanished and I get a message like: \"Google has disabled use of the Maps API for this application\". How do I fix this?","wassup");?></span><br/>
|
1036 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo __("Wassup-spy total daily map views has likely exceeded the Google!maps usage limit for Wassup plugin.","wassup").' ';
|
1037 |
-
echo sprintf(__("To fix, sign up for a free %s for your site's sole usage and enter the key under \"Spy Visitors settings\" in %s tab.","wassup"),'<a href="'.$GMapsAPI_signup.'">Google!Maps API '.__("Key","wassup").'</a>','<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span></li>
|
1038 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I exclude a visitor from being recorded?","wassup");?></span><br/>
|
1039 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Navigate to %s tab and enter a visitor's username, IP address, or hostname into the appropriate text area for that \"Recording Exclusion\" type.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("Filters & Exclusions","wassup").']</nobr></span>');?></span></li>
|
1040 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I stop (temporarily) WassUp from recording new visits on my site?","wassup");?></span><br/>
|
1041 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Uncheck the box for \"Enable statistics recording\" under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span></li>
|
1042 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("In Wordpress multisite, how do I stop (temporarily) WassUp from recording new visits on all sites in the network?","wassup");?></span><br/>
|
1043 |
-
<strong>A#1:</strong> <span class="faq-answer"><?php echo sprintf(__("If plugin is \"network activated\", login as network admin, go to the Network admin dashboard, navigate to %s tab and Uncheck the box for \"Enable Statistics Recording for network\" and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >>['.__("General Setup","wassup").']</span>');?></span><br/>
|
1044 |
-
<strong>A#2:</strong> <span class="faq-answer"><?php echo sprintf(__("If plugin is NOT \"network activated\", login as network admin, go to the main site/parent domain admin dashboard, navigate to %s tab, then Uncheck the box for \"Enable Statistics Recording for network\" and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span>
|
1045 |
-
</li>
|
1046 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("No data is being displayed; or \"Visitor Details\" panel show 0 records for the last 24 hours. How do I fix this?","wassup");?></span><br/>
|
1047 |
-
<strong>A #1:</strong> <span class="faq-answer"><?php echo sprintf(__("Check the box for \"Enable statistics recording\" setting under %s tab and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span><br/>
|
1048 |
-
<strong>A #2:</strong> <span class="faq-answer"><?php echo sprintf(__("Click the [Reset to Default] button under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span><br/>
|
1049 |
-
<strong>A #3:</strong> <span class="faq-answer"><?php echo sprintf(__("Navigate to %s tab and uncheck the \"MySQL Delayed Insert\" setting and save.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("Manage File & Data","wassup").']</nobr></span>');?></span><br/>
|
1050 |
-
<strong>A #4:</strong> <span class="faq-answer"><?php echo __("Deactivate and Re-activate Wassup from Wordpress Plugins panel.","wassup");?></span><br/>
|
1051 |
-
<strong>A #5:</strong> <span class="faq-answer"><?php echo sprintf(__("If you have access to MySql/phpMyAdmin on your host server, run the MySql command %s to repair and release any locks on wassup table. Note that wassup table name may be different in other Wordpress setups.","wassup"),'<code>REPAIR TABLE '.$wassup_options->wassup_table.'</code>');?></span><br/>
|
1052 |
-
<strong>A #6:</strong> <span class="faq-answer"><?php echo __("As a last resort, uninstall WassUp cleanly (delete data and files) and reinstall it.","wassup");?></span></li>
|
1053 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("My popular web site is hosted on a shared server with restrictive database size limits. How do I prevent WassUp's table from growing too big for my allocated quota?","wassup");?></span><br/>
|
1054 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("Navigate to %s tab and enable the setting for \"Auto Delete\" of old records and/or check the box to receive an email alert when the table size limit is exceeded.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("Manage File & Data","wassup").']</nobr></span>');?></span></li>
|
1055 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("WassUp visitor counts are much lower than actual for my website. Why is there a discrepancy and how do I fix it?","wassup");?></span><br/>
|
1056 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo __("Low visitor count is likely caused by page caching on your website. WassUp is incompatible with static page caching plugins such as WP Supercache, WP Cache, and Hyper Cache. To fix, uninstall your cache plugin or switch to a different (javascript-based) statistics plugin.","wassup");?></span></li>
|
1057 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("Is there any caching plugin that works with WassUp?","wassup");?></span><br/>
|
1058 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("%s is the only caching plugin verified to work with WassUp.","wassup"),'<a href="http://wordpress.org/extend/plugins/wp-widget-cache/">WP Widget Cache</a>');?></span></li>
|
1059 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How can I make Wassup run faster?","wassup");?></span><br/>
|
1060 |
-
<strong>A #1:</strong> <span class="faq-answer"><?php echo sprintf(__("Keep Wassup table size small by setting automatic delete of old records or do manual delete periodically under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("Manage File & Data","wassup").']</nobr></span>');?></span><br/>
|
1061 |
-
<strong>A #2:</strong> <span class="faq-answer"><?php echo __("If using the \"Top Stats\" widget on your site, set refresh frequency to 15 minutes or higher.","wassup");?></span><br/>
|
1062 |
-
<strong>A #3:</strong> <span class="faq-answer"><?php echo sprintf(__("Reduce the number of recording exclusions (by ip/hostname/username/url) under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("Filters & Exclusions","wassup").']</nobr></span>');?></span><br/>
|
1063 |
-
<strong>A #4:</strong> <span class="faq-answer"><?php
|
1064 |
-
$files='<span class="code"> akismet.class.php</span>';
|
1065 |
-
echo sprintf(__("Delete the file(s) %s from the plugin subfolder 'lib' to stop Wassup from doing remote server queries for spam identification.","wassup"),$files);?></span><br/>
|
1066 |
-
<strong>A #5:</strong> <span class="faq-answer"><?php echo sprintf(__("As a last resort, stop all spam/malware detection on new hits by unchecking \"Enable Spam and malware detection on records\" under %s tab.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span></li>
|
1067 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("Why does WassUp stats sometimes show more page views than actual pages clicked by a person?","wassup");?></span><br/>
|
1068 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo __("\"Phantom\" page views can occur when a user's browser does automatic feed retrieval, link pre-fetching, a page refresh, or automatically adds your website to it's \"Top sites\" window (Safari). WassUp tracks these because they are valid requests from the browser and are sometimes indistinguishable from user link clicks.","wassup");?></span></li>
|
1069 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I upgrade WassUp safely when my site has frequent visitors?","wassup");?></span><br/>
|
1070 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo sprintf(__("To upgrade WassUp when your site is busy, you must first disable statistics recording manually under %s tab, then do the plugin upgrade, and afterwards re-enable recording manually when the upgrade is complete and the plugin is active.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("General Setup","wassup").']</nobr></span>');?></span></li>
|
1071 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("An unspecified error occurred during plugin upgrade. What do I do next?","wassup");?></span><br/>
|
1072 |
-
<strong>A:</strong> <span class="faq-answer"><?php echo __("Wait a few minutes. Do NOT re-attempt to upgrade nor try to activate the plugin again! An activation error with no explanation is probably due to your browser timing out, not an upgrade failure. WassUp continues it's upgrade in the background and will activate automatically when it is done. After a few minutes (5-10) has passed, revisit Wordpress admin Plugins panel and verify that Wassup plugin has activated.","wassup");?></span></li>
|
1073 |
-
<li><strong>Q:</strong> <span class="faq-question"><?php echo __("How do I uninstall WassUp cleanly?","wassup");?></span><br/>
|
1074 |
-
<strong>A #1:</strong> <span class="faq-answer"><?php echo __("From a single Wordpress site: navigate to Wordpress Plugins panel and deactivate WassUp plugin. Then, on the same page, click the \"delete\" link below WassUp name. This deletes both data and files permanently.","wassup");?></span><br/>
|
1075 |
-
<strong>A #2:</strong> <span class="faq-answer"><?php echo __("From Wordpress multisite Network admin panel: navigate to Plugins panel and deactivate WassUp plugin. If the plugin is not \"network activated\", navigate to the main site/parent domain Plugins panel and deactivate Wassup plugin there, then return to Network admin Plugins panel. Click the \"delete\" link below WassUp name. This deletes both data and files permanently from the main site/parent domain and deletes Wassup data from all the subsites in the network.","wassup");?></span><br/>
|
1076 |
-
<strong>A #3:</strong> <span class="faq-answer"><?php echo sprintf(__("From a subsite in Wordpress multisite: navigate to %s tab and check the box for \"Permanently remove WassUp data and settings\" and save. Next, go to the subsite's Plugins panel and deactivate WassUp plugin. This deletes the subsite's data permanently. No files are deleted (not needed).","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >><nobr>['.__("Uninstall","wassup").']</nobr></span>');?></span><br/>
|
1077 |
-
<strong>A #4:</strong> <span class="faq-answer"><?php echo sprintf(__("From a Wordpress 2.x site: navigate to %s tab and check the box for \"Permanently remove WassUp data and settings\" and save. Next, go to Wordpress Plugins panel and deactivate WassUp plugin. This deletes the data permanently. To delete the plugin files from Wordpress 2.x, use an ftp client software on your PC or login to your host server's \"cpanel\" and use \"File Manager\" to delete the folder \"wassup\" from the %s directory on your host server.","wassup"),'<span class="code">WassUp >>'.__("Options","wassup").' >>['.__("Uninstall","wassup").']</span>','<code>/wordpress/wp-content/plugins/</code>');?></span></li>
|
1078 |
-
</ol>
|
1079 |
-
<p class="legend"><?php echo sprintf(__("Visit the %s to find more answers to your WassUp questions.","wassup"),'<a href="http://wordpress.org/support/plugin/wassup">'.__("Plugin Forum","wassup").'</a>');?></p>
|
1080 |
-
<br />
|
1081 |
-
<p class="opt-prev-next"><a href="<?php if($has_uninstall_tab) echo $options_link.'&tab=4';else echo $options_link.'&tab=3';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php echo $options_link.'&tab=donate';?>"><?php echo __("Next","wassup").'→';?></a> <a href="#wassupsettings" onclick="wScrollTop();return false;"><?php echo __("Top","wassup").'↑';?></a></p><br />
|
1082 |
-
</div>
|
1083 |
-
<div id="wassup_opt_frag-6" class="optionspanel donatepanel<?php if($tab=="donate" || $tab=="6") echo ' tabselected';?>">
|
1084 |
<h3><?php _e("How you can donate","wassup"); ?></h3>
|
1085 |
<p><?php echo __("If you like this plugin, please consider making a donation to help keep it's development active.","wassup");?></p>
|
1086 |
<div class="donate-block">
|
@@ -1098,12 +1056,11 @@ function wassup_optionsView($tab=0) {
|
|
1098 |
if (file_exists(WASSUPDIR."/lib/donate.php")) include_once(WASSUPDIR."/lib/donate.php");?>
|
1099 |
</div>
|
1100 |
<br />
|
1101 |
-
<p class="opt-prev-next"><a href="<?php echo $options_link.'&tab=
|
1102 |
</div>
|
1103 |
</div><!-- /#tabcontainer -->
|
1104 |
</form>
|
1105 |
<br />
|
1106 |
-
<script type="text/javascript">jQuery("a#BCdonate").toggle(function(){jQuery('div#bc_placeholder').slideDown("slow");},function(){jQuery('div#bc_placeholder').slideUp("slow");return false;});</script>
|
1107 |
<?php
|
1108 |
echo "\n";
|
1109 |
} //end wassup_optionsView
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Displays settings form, Wassup wp_options values, and donate buttons
|
4 |
*
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage settings.php
|
27 |
* Form to change Wassup's wp_option settings and to show plugin info.
|
28 |
* - Shows both single site and network settings where applicable
|
29 |
* - Shows server settings that may affect plugin performance
|
|
|
30 |
* - Shows ways to donate $ towards continued plugin development
|
31 |
*
|
32 |
* @param integer
|
108 |
?>
|
109 |
<p><?php echo sprintf(__("You can add a sidebar Widget with some useful statistics information by activating the %s widget from the %s.","wassup"), $wwidgets,$wwidgets_link);?></p>
|
110 |
<p style="padding:10px 0 10px 0;"><?php _e('Select the options you want for WassUp plugin','wassup'); ?></p><?php
|
111 |
+
if(empty($tab) || (!is_numeric($tab) && $tab!="donate")){
|
112 |
if(isset($_POST['delete_now'])) $tab=3;
|
113 |
elseif(isset($_POST['submit-options'])) $tab=1;
|
114 |
elseif(isset($_POST['submit-options2'])) $tab=2;
|
118 |
$tab=1;
|
119 |
if(!empty($_REQUEST['tab'])){
|
120 |
if (is_numeric($_REQUEST['tab']) && $_REQUEST['tab']>0 && $_REQUEST['tab']<7) $tab = (int)$_REQUEST['tab'];
|
121 |
+
elseif($_REQUEST['tab']=="donate") $tab=$_REQUEST['tab'];
|
122 |
}
|
123 |
}
|
124 |
}
|
151 |
echo "\n";?>
|
152 |
<li id="opt-tab4" class="optionstab <?php if($tab=="4")echo ' ui-tabs-active';?>"><a href="#wassup_opt_frag-4"><span><?php _e("Uninstall","wassup");?></span></a></li><?php
|
153 |
}
|
154 |
+
//"donate" tab @since v1.9 (separate faq submenu in v1.9.4)
|
155 |
echo "\n";?>
|
156 |
+
<li id="opt-tab-donate" class="optionstab donatetab<?php if($tab=="donate" || $tab=="5")echo ' ui-tabs-active';?>"><a href="#wassup_opt_frag-5"><span><?php _e("Donate","wassup");?></span></a></li>
|
|
|
157 |
</ul>
|
158 |
|
159 |
<div id="wassup_opt_frag-1" class="optionspanel<?php if ($tab == "1") echo ' tabselected'; ?>"><br/><?php
|
191 |
<?php
|
192 |
if(version_compare($wp_version,'2.7','>=')){ ?>
|
193 |
<h3><?php _e('User Permissions'); ?></h3>
|
194 |
+
<p class="description"><?php echo __("Gives selected users view-only access to Wassup's stats dashboard menu, some submenu panels, and the dashboard widget.","wassup")." ";
|
195 |
+
echo __("Only administrators can access Wassup's main menu and all it's submenu panels including the options panel to delete data and edit plugin settings.","wassup");?></p>
|
196 |
<p><strong><?php _e('Set minimum user level that can view WassUp stats','wassup'); ?></strong>:
|
197 |
<select name="wassup_userlevel">
|
198 |
<?php $wassup_options->showFieldOptions("wassup_userlevel"); ?>
|
228 |
?>
|
229 |
<p class="indent-opt"> <input type="checkbox" name="wassup_geoip_map" value="1" <?php echo $checked; ?> />
|
230 |
<strong><?php _e('Display a GEO IP Map in the spy visitors view','wassup'); ?></strong></p>
|
231 |
+
<p class="checkbox-indent"><strong>Google Maps API <?php _e("key","wassup");?>:</strong> <input type="text" name="wassup_googlemaps_key" id="wassup_googlemaps_key" size="40" value=<?php echo '"'.esc_attr($api_key).'"'.$disabled;?> /> - <a href="<?php echo $GMapsAPI_signup;?>" target="_blank"><?php _e("signup for your free key","wassup");?></a>
|
232 |
+
<br/><?php echo __('An API key is required to view the map.','wassup');?>
|
233 |
</p><br/>
|
234 |
<?php
|
235 |
$checked='checked="CHECKED"';
|
335 |
<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 />
|
336 |
<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 />
|
337 |
</span>
|
338 |
+
</p>
|
339 |
+
<p class="opt-note" style="display:block;"><strong> <?php echo __('Referrer spam whitelist','wassup');?></strong><br/>
|
340 |
+
<span style="padding-left:15px;"><?php _e('Enter referrer domains that were incorrectly labeled as "Referrer Spam" in "Visitor Detals":','wassup');?><br/>
|
341 |
+
<textarea name="refspam_whitelist" rows="1" style="width:66%;margin-left:15px;"><?php if(!empty($wassup_options->refspam_whitelist)) echo esc_attr($wassup_options->refspam_whitelist); ?></textarea><br/>
|
342 |
+
<span style="padding-left:15px;"> <?php echo __("comma separated value. Enter whole domains only. Wildcards will be ignored.","wassup")." (ex: referrer.net, referrer.domain.com). ";?></span>
|
343 |
</p><br />
|
344 |
+
<hr/>
|
345 |
<h3><?php _e('Recording Exceptions','wassup');?></h3>
|
346 |
<p class="description"><?php _e("You can exclude a single visitor (by IP, hostname or username) or you can exclude a specific URL request from being stored in WassUp records.","wassup");
|
347 |
echo " ".__("Note that recording exceptions lower overall statistics counts and excessive exclusions can affect page load speed on slow host servers.","wassup");?>
|
350 |
<p style="padding-top:0;padding-bottom:0;"><strong><?php echo __('Enter source IPs to omit from recording','wassup');?></strong>:
|
351 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
352 |
<textarea name="wassup_exclude" rows="2" style="width:60%;"><?php echo esc_url($wassup_options->wassup_exclude);?></textarea></span>
|
353 |
+
<span class="opt-note"> <?php echo __("comma separated value (ex: 127.0.0.1, 10.0.0.1, etc...).","wassup")." ".__("A single wildcard (*) can be placed after the last '.' in the IP ('::' in IPv6) for range exclusions (ex: 10.10.100.*, 192.168.*).","wassup");?></span>
|
354 |
</p><br/>
|
355 |
<h3 class="indent-opt"><?php echo __("Exclude by Hostname","wassup");?></h3>
|
356 |
<p style="padding-top:0;padding-bottom:0;"><strong><?php echo __('Enter source hostnames to omit from recording','wassup');?></strong>:
|
357 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
358 |
<textarea name="wassup_exclude_host" rows="2" style="width:60%;"><?php echo esc_attr($wassup_options->wassup_exclude_host);?></textarea></span>
|
359 |
+
<span class="opt-note"> <?php echo __("comma separated value (ex: host1.domain.com, host2.domain.net, etc...).", "wassup")." ".__("A single wildcard (*) can be placed before the first '.' for domain network exclusions (ex: *.spamdomain.com, *.hackers.malware.net).","wassup");?></span>
|
360 |
</p><br/>
|
361 |
<h3 class="indent-opt"><?php echo __("Exclude by Username","wassup");?></h3>
|
362 |
<p style="padding-top:0;"><strong><?php echo __('Enter usernames to omit from recording','wassup');?></strong>:
|
363 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
364 |
<textarea name="wassup_exclude_user" rows="2" style="width:60%;"><?php echo esc_attr($wassup_options->wassup_exclude_user);?></textarea></span>
|
365 |
+
<span class="opt-note"> <?php _e("comma separated value, enter a registered user's login name (ex: bobmarley, enyabrennan, etc.)", "wassup");?></span>
|
366 |
</p><br/>
|
367 |
<h3 class="indent-opt"><?php echo __("Exclude by URL request","wassup");?></h3>
|
368 |
<p style="padding-top:0;"><strong><?php echo __('Enter URLs of page/post/feed to omit from recording','wassup');?></strong>:
|
369 |
<br /><span style="padding-left:10px;display:block;clear:left;">
|
370 |
<textarea name="wassup_exclude_url" rows="2" style="width:60%;"><?php echo esc_url($wassup_options->wassup_exclude_url);?></textarea></span>
|
371 |
+
<span class="opt-note"> <?php _e("comma separated value, don't enter entire url, only the last path or some word to exclude (ex: /category/wordpress, 2007, etc...)", "wassup");?></span>
|
372 |
</p><br />
|
373 |
<p class="submit"><input type="submit" name="submit-options2" id="submit-options2" class="submit-opt button button-left button-primary" value="<?php _e('Save Settings','wassup');?>" onclick="jQuery('#submit-options2').val('Saving...');" /> <input type="reset" name="reset" class="reset-opt button button-secondary" value="<?php _e('Reset','wassup');?>" /> - <input type="submit" name="reset-to-default" class="default-opt button button-caution wassup-button" value="<?php _e("Reset to Default", "wassup");?>" /></p>
|
374 |
<p class="opt-prev-next"><a href="<?php echo $options_link.'&tab=1';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php echo $options_link.'&tab=3';?>"><?php echo __("Next","wassup").'→';?></a> <a href="#wassupsettings" onclick="wScrollTop();return false;"><?php echo __("Top","wassup").'↑';?></a></p><br />
|
393 |
<?php print $alert_msg; ?>
|
394 |
<p class="indent-opt"><input type="checkbox" name="wassup_remind_flag" value="1" <?php if($wassup_options->wassup_remind_flag==1) echo $checked;?>>
|
395 |
<strong><?php _e('Alert me','wassup'); ?></strong> (<?php _e('email to','wassup'); ?>: <strong><?php print $adminemail; ?></strong>) <?php _e('when table reaches','wassup'); ?> <input type="text" name="wassup_remind_mb" size="3" value="<?php echo (int)$wassup_options->wassup_remind_mb; ?>"> Mb</p>
|
396 |
+
<h3 class="indent-opt"><?php _e("Delete old records","wassup");?>:</h3>
|
|
|
|
|
397 |
<p class="indent-opt description"><?php
|
398 |
+
echo __("Before deleting, you can backup Wassup table by clicking the \"Export SQL\" button below.","wassup");?></p>
|
|
|
399 |
<p> <label for="do_delete_auto"><input type="checkbox" name="do_delete_auto" id="do_delete_auto" value="1" <?php if ($wassup_options->delete_auto!="never") echo $checked;?>/> <strong><?php _e("Automatically delete","wassup");?></strong>: </label>
|
400 |
<select name="delete_filter"><?php $wassup_options->showFieldOptions("delete_filter"); ?></select>
|
401 |
<nobr><?php _e("records older than", "wassup"); ?>
|
407 |
<select name="delete_manual"><?php $wassup_options->showFieldOptions("delete_auto","never");?></select> <?php _e("once","wassup");?></nobr>
|
408 |
</p><?php
|
409 |
//Delete by record ID# - for use with export @since v1.9
|
410 |
+
$exporturl=wp_nonce_url($options_link.'&tab=3&export=1','wassupexport-'.$current_user->ID);
|
411 |
$last_export_id=wassupDb::get_wassupmeta($wassup_table,'_export_recid-'.$current_user->ID);
|
412 |
if (empty($last_export_id) || !is_numeric($last_export_id))
|
413 |
$last_export_id=0;?>
|
414 |
<p> <label for="do_delete_recid"><input type="checkbox" name="do_delete_recid" id="do_delete_recid" value="1" /> <strong><?php _e("Delete all records up to record ID#","wassup");?></strong>:</label>
|
415 |
+
<input type="text" name="delete_recid" id="delete_recid" value="<?php if (!empty($_POST['delete_recid']) && is_numeric($_POST['delete_recid'])) echo $_POST['delete_recid']; else echo '0';?>" /> <nobr>(<?php echo __("Last SQL export record ID#:","wassup")." ".$last_export_id;?>)</nobr>
|
416 |
</p>
|
417 |
<p class="indent-opt"> <label for="do_delete_empty"><input type="checkbox" name="do_delete_empty" id="do_delete_empty" value="1"/> <strong><?php _e('Empty table','wassup');?></strong></label>
|
418 |
(<a class="export-wassup" href="<?php echo $exporturl;?>"><?php _e('export table in SQL format','wassup');?></a>)
|
419 |
</p>
|
420 |
<p style="margin-top:20px;">
|
421 |
+
<input type="button" name="delete_now" class="submit-opt button button-danger wassup-hot-button" value="<?php _e('Delete NOW','wassup'); ?>" onclick="submit();"/><br/>
|
422 |
+
<span> <nobr><?php _e("Action is NOT undoable!", "wassup");?></nobr></span>
|
423 |
</p>
|
424 |
<br/>
|
425 |
+
<h3><?php _e("Table Export","wassup");?>:</h3>
|
426 |
<p class="indent-opt description"><?php
|
427 |
+
echo __("Wassup can export table records in SQL or CSV format.","wassup").' ';
|
428 |
+
echo __("An automatic file download will start after table data is retrieved successfully.","wassup").' ';
|
429 |
+
echo __("By default, exported records excludes known spam/malware to prevent propagation of malware.","wassup").' ';
|
430 |
+
?></p>
|
431 |
<p class="indent-opt"><label for="export_spam"> <input type="checkbox" name="export_spam" value="1" <?php if(!empty($wassup_options->export_spam)) echo $checked;?>/> <strong><?php echo __("Include spam records in exported data","wassup");?></strong></label><br>
|
432 |
+
<span class="opt-note"><?php if(!empty($wassup_options->wassup_spamcheck)) echo __("Security NOTICE: Enabling this could expose your computer or website to malware when spam records are imported.","wassup"); //v1.9.4 bugfix
|
433 |
+
?></span></p><br/>
|
434 |
<p class="indent-opt"><label for="export_omit_recid"> <input type="checkbox" name="export_omit_recid" value="1" <?php if(!empty($wassup_options->export_omit_recid)) echo $checked;?>/> <strong><?php echo __("Omit record ID from exported fields","wassup");?></strong></label><br/>
|
435 |
+
<span class="opt-note"><?php echo __("Check this box when importing SQL data into another Wassup table that already has records (appending data).","wassup");?></span><br/>
|
436 |
+
</p>
|
437 |
+
<p style="margin-top:15px;margin-left:-5px;">
|
438 |
+
<span style="padding-top:3px;display:block;"> <?php
|
439 |
+
echo __('IMPORTANT','wassup').':'.__("Click \"Save Settings\" to apply option changes before export.","wassup").' ';?></span><br/>
|
440 |
+
<a id="<?php $sqlid='sql'.sprintf('%06d',rand(1,999999));echo $sqlid;?>" class="export-link button button-secondary" href="<?php echo wp_nonce_url($options_link.'&tab=3&export=sql&mid='.$sqlid,'wassupexport-'.$current_user->ID);?>"><?php _e('Export SQL','wassup');?></a>
|
441 |
+
<a id="<?php $csvid='csv'.sprintf('%06d',rand(1,999999));echo $csvid;?>" class="export-link button button-secondary" href="<?php echo wp_nonce_url($options_link.'&tab=3&export=csv&mid='.$csvid,'wassupexport-'.$current_user->ID);?>"><?php _e('Export CSV','wassup');?></a><br/>
|
442 |
+
<span style="padding-top:3px;display:block;"> <?php
|
443 |
+
echo __("Export of large datasets may be truncated.","wassup").' ';
|
444 |
+
?></span><br/>
|
445 |
+
</p>
|
446 |
+
<div id="wassup-dialog" class="ui-dialog" title="WassUp <?php echo __('Export','wassup');?>"><p><?php echo __("Retrieving data for export. Download will start soon. Please wait.","wassup");?> </p></div>
|
447 |
<br/>
|
448 |
<h3><?php _e("Table Optimization","wassup");?>:</h3>
|
449 |
<input type="hidden" name="wassup_dbengine" value="<?php echo $table_engine;?>"/>
|
606 |
echo __("no limit/unknown","wassup");
|
607 |
}?></li>
|
608 |
<li><strong>WordPress <?php
|
609 |
+
$WPtimezone=get_option('timezone_string');
|
610 |
+
if(!empty($WPtimezone)) echo __('Timezone');
|
611 |
+
else echo __('Time Offset','wassup');?></strong>:<?php
|
612 |
+
if(!empty($WPtimezone)){
|
613 |
echo $WPtimezone;
|
614 |
$wpoffset = (current_time('timestamp') - time())/3600;
|
615 |
}else{
|
1018 |
</ul>
|
1019 |
<br />
|
1020 |
</div><!-- /sysinfo -->
|
1021 |
+
<p class="opt-prev-next"><a href="<?php echo $options_link.'&tab=2';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php if($has_uninstall_tab) echo $options_link.'&tab=4';else echo $options_link.'&tab=donate';?>"><?php echo __("Next","wassup").'→';?></a> <a href="#wassupsettings" onclick="wScrollTop();return false;"><?php echo __("Top","wassup").'↑';?></a></p><br />
|
1022 |
</div>
|
1023 |
<?php
|
1024 |
if($has_uninstall_tab){?>
|
1034 |
<br /><p><?php echo sprintf(__("To help improve this plugin, we would appreciate your feedback at %s.","wassup"),'<a href="http://www.wpwp.org">www.wpwp.org</a>');?></p>
|
1035 |
<br /><br />
|
1036 |
<p class="submit"><input type="submit" name="submit-options4" id="submit-options4" class="submit-opt button button-left button-primary" value="<?php _e('Save Settings','wassup');?>" onclick="jQuery('#submit-options4').val('Saving...');"/> <input type="reset" name="reset" value="<?php _e('Reset','wassup');?>" class="reset-opt button button-secondary" /> - <input type="submit" name="reset-to-default" class="default-opt button button-caution wassup-button" value="<?php _e("Reset to Default", "wassup");?>" /></p>
|
1037 |
+
<p class="opt-prev-next"><a href="<?php echo $options_link.'&tab=3';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php echo $options_link.'&tab=donate';?>"><?php echo __("Next","wassup").'←';?></a> <a href="#wassupsettings" onclick="wScrollTop();return false;"><?php echo __("Top","wassup").'↑';?></a></p><br />
|
1038 |
</div><?php
|
1039 |
} //if has_uninstall_tab
|
1040 |
?>
|
1041 |
+
<div id="wassup_opt_frag-5" class="optionspanel donatepanel<?php if($tab=="donate" || $tab=="5") echo ' tabselected';?>">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1042 |
<h3><?php _e("How you can donate","wassup"); ?></h3>
|
1043 |
<p><?php echo __("If you like this plugin, please consider making a donation to help keep it's development active.","wassup");?></p>
|
1044 |
<div class="donate-block">
|
1056 |
if (file_exists(WASSUPDIR."/lib/donate.php")) include_once(WASSUPDIR."/lib/donate.php");?>
|
1057 |
</div>
|
1058 |
<br />
|
1059 |
+
<p class="opt-prev-next"><a href="<?php if($has_uninstall_tab) echo $options_link.'&tab=4';else echo $options_link.'&tab=3';?>"><?php echo '←'.__("Prev","wassup");?></a> <a href="<?php echo $options_link.'&tab=1';?>"><?php echo __("Next","wassup").'→';?></a> <a href="#wassupsettings" onclick="wScrollTop();return false;"><?php echo __("Top","wassup").'↑';?></a></p><br />
|
1060 |
</div>
|
1061 |
</div><!-- /#tabcontainer -->
|
1062 |
</form>
|
1063 |
<br />
|
|
|
1064 |
<?php
|
1065 |
echo "\n";
|
1066 |
} //end wassup_optionsView
|
lib/upgrade.php
CHANGED
@@ -155,8 +155,6 @@ function wassup_settings_install($wassup_table=""){
|
|
155 |
}
|
156 |
}
|
157 |
} //!is_multisite
|
158 |
-
//clear table status cache for table upgrade
|
159 |
-
//$result=wassupDb::clear_cache('_table_status'); //-redundant...all cache is cleared in wassup_updateTable() function
|
160 |
} //end if wassup_alert_message
|
161 |
$wassup_options->wassup_table= $wassup_table;
|
162 |
$wassup_options->wassup_upgraded= time();
|
@@ -478,6 +476,16 @@ function wassup_updateTable($wtable=""){
|
|
478 |
//Do the upgrades
|
479 |
$dbtasks=array();
|
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
|
@@ -661,10 +669,6 @@ function wassup_updateTable($wtable=""){
|
|
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);
|
668 |
//For upgrade from < v1.8:
|
669 |
// -retroactively fix incorrect OS "win2008" (="win7") in table
|
670 |
if(version_compare($from_version,"1.8","<")){
|
@@ -692,6 +696,15 @@ function wassup_updateTable($wtable=""){
|
|
692 |
$dbtasks[]=sprintf("UPDATE $low_priority `$wassup_table` SET `browser`='IE 11' WHERE `timestamp`>='%d' AND `browser`='' AND (`os` LIKE 'Win10%%' OR `os` LIKE 'WinNT 10%%') AND `agent` LIKE '%% Edge%%'",strtotime("1 January 2015"));
|
693 |
} //end if 1.9
|
694 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
695 |
//Queue the retroactive updates
|
696 |
//schedule retroactive updates via cron so it dosen't slow down activation
|
697 |
if(count($dbtasks)>0){
|
@@ -702,10 +715,10 @@ function wassup_updateTable($wtable=""){
|
|
702 |
wassupDb::scheduled_dbtask($arg);
|
703 |
}
|
704 |
}
|
|
|
705 |
//Lastly, check for browser timeout..may not work because of output redirection in Wordpress during plugin install, so also use timer.
|
706 |
-
|
707 |
-
|
708 |
-
//run 'wassup_settings_install' on browser abort and save settings
|
709 |
if(connection_aborted() || (time() - $stimer_start) > 57){
|
710 |
$wassup_options->wassup_alert_message="Wassup ".WASSUPVERSION.": ".__("Database created/upgraded successfully","wassup");
|
711 |
wassup_settings_install($wassup_table);
|
155 |
}
|
156 |
}
|
157 |
} //!is_multisite
|
|
|
|
|
158 |
} //end if wassup_alert_message
|
159 |
$wassup_options->wassup_table= $wassup_table;
|
160 |
$wassup_options->wassup_upgraded= time();
|
476 |
//Do the upgrades
|
477 |
$dbtasks=array();
|
478 |
$dbtask_keys=array();
|
479 |
+
//create wp-cron action for background updates
|
480 |
+
//Note that 'LOW_PRIORITY' is strictly for separate cron/ajax processes only..otherwise it will cause long waits when site is busy
|
481 |
+
$low_priority="";
|
482 |
+
if(version_compare($wp_version,'3.0','>')){
|
483 |
+
$low_priority="LOW_PRIORITY";
|
484 |
+
add_action('wassup_upgrade_dbtasks',array('wassupDb','scheduled_dbtask'),10,1);
|
485 |
+
if(empty($wassup_options->wassup_googlemaps_key)){
|
486 |
+
add_action('wassup_scheduled_api_upg',array('wassupOptions','lookup_apikey'),10,1);
|
487 |
+
}
|
488 |
+
}
|
489 |
//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
|
490 |
//Do table structure upgrades
|
491 |
//skip some upgrade checks when script timeout is small number @since v1.9.1
|
669 |
|
670 |
//Do retroactive data updates by version#
|
671 |
//Retroactive data updates are run separately from table structure upgrades (via wp_cron). @since v1.9
|
|
|
|
|
|
|
|
|
672 |
//For upgrade from < v1.8:
|
673 |
// -retroactively fix incorrect OS "win2008" (="win7") in table
|
674 |
if(version_compare($from_version,"1.8","<")){
|
696 |
$dbtasks[]=sprintf("UPDATE $low_priority `$wassup_table` SET `browser`='IE 11' WHERE `timestamp`>='%d' AND `browser`='' AND (`os` LIKE 'Win10%%' OR `os` LIKE 'WinNT 10%%') AND `agent` LIKE '%% Edge%%'",strtotime("1 January 2015"));
|
697 |
} //end if 1.9
|
698 |
|
699 |
+
//For all upgrades:
|
700 |
+
// New in v1.9.4: get a new api key
|
701 |
+
if(empty($wassup_options->wassup_googlemaps_key)){
|
702 |
+
if(!empty($low_priority)){
|
703 |
+
wp_schedule_single_event(time()+600,'wassup_scheduled_api_upg');
|
704 |
+
}else{
|
705 |
+
$key=wassupOptions::lookup_apikey();
|
706 |
+
}
|
707 |
+
}
|
708 |
//Queue the retroactive updates
|
709 |
//schedule retroactive updates via cron so it dosen't slow down activation
|
710 |
if(count($dbtasks)>0){
|
715 |
wassupDb::scheduled_dbtask($arg);
|
716 |
}
|
717 |
}
|
718 |
+
|
719 |
//Lastly, check for browser timeout..may not work because of output redirection in Wordpress during plugin install, so also use timer.
|
720 |
+
//'echo chr(0);' to send null to browser to check if it is still alive - doesn't work
|
721 |
+
//...after 1 minute (normal http request keepAlive time) or browser abort, run 'wassup_settings_install' and save settings
|
|
|
722 |
if(connection_aborted() || (time() - $stimer_start) > 57){
|
723 |
$wassup_options->wassup_alert_message="Wassup ".WASSUPVERSION.": ".__("Database created/upgraded successfully","wassup");
|
724 |
wassup_settings_install($wassup_table);
|
lib/wassup.class.php
CHANGED
@@ -63,6 +63,7 @@ class wassupOptions {
|
|
63 |
var $wassup_refspam = "1";
|
64 |
var $wassup_attack = "1";
|
65 |
var $wassup_hack = "1";
|
|
|
66 |
|
67 |
/* table/file management settings */
|
68 |
var $wassup_table;
|
@@ -171,6 +172,7 @@ class wassupOptions {
|
|
171 |
'wassup_spamcheck' =>"1",
|
172 |
'wassup_spam' =>"1",
|
173 |
'wassup_refspam' =>"1",
|
|
|
174 |
'wassup_exclude' =>"",
|
175 |
'wassup_exclude_host' =>"",
|
176 |
'wassup_exclude_url' =>"",
|
@@ -636,8 +638,9 @@ class wassupOptions {
|
|
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
|
640 |
-
|
|
|
641 |
return $cleantext;
|
642 |
}
|
643 |
/** strip bad characters from a text or textarea input for URLs. @since v1.9 */
|
@@ -684,9 +687,7 @@ class wassupOptions {
|
|
684 |
$this->wassup_dashboard_chart=(!empty($_POST['wassup_dashboard_chart'])?"1":"0");
|
685 |
$this->wassup_geoip_map=(!empty($_POST['wassup_geoip_map'])?"1":"0");
|
686 |
if(!empty($_POST['wassup_googlemaps_key'])){
|
687 |
-
$
|
688 |
-
if(strpos($_POST['wassup_googlemaps_key'],$not_required)===false) $this->wassup_googlemaps_key=$this->cleanFormText($_POST['wassup_googlemaps_key']);
|
689 |
-
else $this->wassup_googlemaps_key="";
|
690 |
}else{
|
691 |
$this->wassup_googlemaps_key="";
|
692 |
}
|
@@ -723,6 +724,8 @@ class wassupOptions {
|
|
723 |
$this->wassup_spider=(!empty($_POST['wassup_spider'])?"1":"0");
|
724 |
$this->wassup_spam=(!empty($_POST['wassup_spam'])?"1":"0");
|
725 |
$this->wassup_refspam=(!empty($_POST['wassup_refspam'])?"1":"0");
|
|
|
|
|
726 |
$this->wassup_hack=(!empty($_POST['wassup_hack'])?"1":"0");
|
727 |
$this->wassup_attack=(!empty($_POST['wassup_attack'])?"1":"0");
|
728 |
if($_POST['wassup_exclude'] != $this->wassup_exclude)
|
@@ -952,6 +955,86 @@ class wassupOptions {
|
|
952 |
$wassuphash=wp_hash($hashkey);
|
953 |
return $wassuphash;
|
954 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
955 |
/**
|
956 |
* Return a PHP command that can execute an external program via the server shell ('shell_exec' or 'exec').
|
957 |
* @since v1.9.1
|
@@ -1018,6 +1101,7 @@ class wassupOptions {
|
|
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();
|
@@ -1044,8 +1128,13 @@ class wassupOptions {
|
|
1044 |
else $mclass="notice notice-info is-dismissible";
|
1045 |
}
|
1046 |
//preface message with version # when not wassup page
|
1047 |
-
if(empty($_GET['page'])
|
1048 |
-
|
|
|
|
|
|
|
|
|
|
|
1049 |
//show alert message
|
1050 |
echo $notice_html."\n";
|
1051 |
//clear displayed alert message from settings
|
@@ -1881,123 +1970,29 @@ class wassupDb{
|
|
1881 |
}
|
1882 |
} //end auto_cleanup
|
1883 |
|
1884 |
-
/**
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
* @return string ($sql)
|
1893 |
-
*/
|
1894 |
-
static function backup_table($table,$condition="",$segment='none'){
|
1895 |
-
global $wpdb,$current_user,$wassup_options,$wdebug_mode;
|
1896 |
-
define('ROWS_PER_SEGMENT', 600);
|
1897 |
-
if(!is_object($current_user) || empty($current_user->ID)){
|
1898 |
-
$user=wp_get_current_user();
|
1899 |
-
}
|
1900 |
-
if(!empty($current_user->ID)){
|
1901 |
-
$wassup_user_settings=get_user_option('_wassup_settings',$current_user->ID);
|
1902 |
-
}else{
|
1903 |
-
$err_msg=__("Export ERROR: login required!","wassup");
|
1904 |
-
$wassup_options->wassup_alert_message=$err_msg;
|
1905 |
-
$wassup_options->saveSettings();
|
1906 |
-
return false;
|
1907 |
-
}
|
1908 |
-
if(empty($table))$table=$wassup_options->wassup_table;
|
1909 |
-
$sql_table_name=$wpdb->get_var(sprintf("SHOW TABLES LIKE '%s'",self::esc_like(esc_attr($table))));
|
1910 |
-
if(empty($sql_table_name) || $sql_table_name!=$table || is_wp_error($sql_table_name)){
|
1911 |
-
$err_msg=sprintf(__('Error with TABLE %s: Not found','wassup'), esc_attr($table));
|
1912 |
-
$wassup_user_settings['ualert_message']=$err_msg;
|
1913 |
-
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
1914 |
-
return FALSE;
|
1915 |
}
|
1916 |
-
|
1917 |
-
$err_msg=false;
|
1918 |
-
$did_export=false;
|
1919 |
-
$timelimit=15*60;
|
1920 |
$mtimeout=60;
|
1921 |
$stimeout=ini_get('max_execution_time');
|
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'";
|
1936 |
-
}
|
1937 |
-
if(!empty($_REQUEST['expid']) && is_numeric($_REQUEST['expid'])){
|
1938 |
-
$backup_id=(int)$_REQUEST['expid'];
|
1939 |
-
}else{
|
1940 |
-
$backup_id=date('YmdH',current_time('timestamp'));
|
1941 |
-
}
|
1942 |
-
//Add comments to each section of export file
|
1943 |
-
if($segment=='none' || $segment==0){
|
1944 |
-
$result=$wpdb->get_results(sprintf("SHOW CREATE TABLE `%s`",esc_attr($table)),ARRAY_N);
|
1945 |
-
if(empty($result[0][1]) || is_wp_error($result)) {
|
1946 |
-
$err_msg=sprintf(__('Error with "SHOW CREATE TABLE" for %s.','wassup'), esc_attr($table));
|
1947 |
-
}else{
|
1948 |
-
$table_create=$result[0][1];
|
1949 |
-
$first_recid=$wpdb->get_var(sprintf("SELECT MIN(`id`) FROM %s %s",esc_attr($table),$condition));
|
1950 |
-
if(!is_numeric($first_recid)) $first_recid=0;
|
1951 |
-
//add comments for table structure section
|
1952 |
-
$sql .="\n#\n";
|
1953 |
-
$sql .="# " . sprintf(__('Table structure of table %s','wassup'),esc_attr($table))."\n#\n";
|
1954 |
-
//replace "CREATE TABLE" with "CREATE TABLE IF NOT EXISTS" and remove AUTO_INCREMENT=NNN value from $table_create
|
1955 |
-
$sql .=preg_replace(array('/^CREATE\sTABLE\s(IF\sNOT\sEXISTS\s)?/i', '/AUTO_INCREMENT\=\d+\s/i'),array('CREATE TABLE IF NOT EXISTS ',''),$table_create).' ;';
|
1956 |
-
$sql .="\n#\n";
|
1957 |
-
//add comments for data section
|
1958 |
-
$sql .="# Start time: ".date('r',current_time('timestamp'))." 1st exported ID: $first_recid \n";
|
1959 |
-
$sql .='# ' . sprintf(__('Data contents of table %s','wassup'),esc_attr($table))."\n#\n";
|
1960 |
-
}
|
1961 |
-
}
|
1962 |
-
//Check for table records
|
1963 |
-
if(empty($err_msg)){
|
1964 |
-
$table_structure=$wpdb->get_results(sprintf("SHOW COLUMNS FROM `%s`",esc_attr($table)));
|
1965 |
-
if(is_wp_error($table_structure)){
|
1966 |
-
$errno=$table_structure->get_error_code();
|
1967 |
-
$err_msg=sprintf(__('Error getting table structure of %s: %s','wassup'), esc_attr($table),$errno.' '.$table_structure->get_error_message());
|
1968 |
-
$table_structure=false;
|
1969 |
-
}elseif(false == $table_structure){
|
1970 |
-
$err_msg=sprintf(__('Error getting table structure of %s','wassup'), esc_attr($table));
|
1971 |
-
}
|
1972 |
-
$numrecords=$wpdb->get_var(sprintf("SELECT COUNT(*) FROM `%s` %s",esc_attr($table), $condition));
|
1973 |
-
if(empty($numrecords) || !is_numeric($numrecords)){
|
1974 |
-
if(is_wp_error($numrecords)){
|
1975 |
-
$errno=$numrecords->get_error_code();
|
1976 |
-
$err_msg=sprintf(__('Error with table %s: %s','wassup'), esc_attr($table),$errno.' '.$numrecords->get_error_message());
|
1977 |
-
}else{
|
1978 |
-
$err_msg=sprintf(__('Error with table %s: No data','wassup'), esc_attr($table));
|
1979 |
-
}
|
1980 |
-
$numrecords=0;
|
1981 |
-
}
|
1982 |
-
}
|
1983 |
-
//ABORT due to table error
|
1984 |
-
if(!empty($err_msg)){
|
1985 |
-
$wassup_user_settings['ualert_message']=$err_msg;
|
1986 |
-
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
1987 |
-
return FALSE;
|
1988 |
-
}
|
1989 |
-
//Extend php script timeout to 10 minutes
|
1990 |
if(is_numeric($stimeout) && $stimeout>0 && $stimeout < 990){
|
1991 |
$disabled_funcs=ini_get('disable_functions');
|
1992 |
if((empty($disabled_funcs) || strpos($disabled_funcs,'set_time_limit')===false) && !ini_get('safe_mode')){
|
1993 |
$stimeout=10*60;
|
1994 |
@set_time_limit($stimeout);
|
1995 |
}
|
1996 |
-
|
1997 |
}elseif($stimeout===0){
|
1998 |
$stimeout=10*60;
|
1999 |
}
|
2000 |
//set mysql wait timeout to 15 minutes
|
|
|
2001 |
$mtimeout=$wpdb->get_var("SELECT @@session.wait_timeout AS mtimeout FROM DUAL");
|
2002 |
if(!empty($mtimeout) && !is_wp_error($mtimeout)){
|
2003 |
if(!is_numeric($mtimeout) || $mtimeout < $timelimit){
|
@@ -2010,131 +2005,264 @@ class wassupDb{
|
|
2010 |
}else{
|
2011 |
$results=$wpdb->query(sprintf("SET wait_timeout = %d",($timelimit+60)));
|
2012 |
}
|
2013 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014 |
$ints=array();
|
2015 |
-
$
|
2016 |
-
$
|
2017 |
-
|
2018 |
-
|
2019 |
-
//differentiate numeric fields from char fields
|
2020 |
if((0===strpos(strtolower($col->Type),'tinyint')) ||
|
2021 |
(0===strpos(strtolower($col->Type),'smallint')) ||
|
2022 |
(0===strpos(strtolower($col->Type),'mediumint')) ||
|
2023 |
(0===strpos(strtolower($col->Type),'int')) ||
|
2024 |
(0===strpos(strtolower($col->Type),'bigint')) ||
|
2025 |
(0===strpos(strtolower($col->Type),'timestamp'))){
|
2026 |
-
$defs[$col->Field]=$col->Default;
|
2027 |
$ints[$col->Field]="1";
|
2028 |
}
|
2029 |
-
|
2030 |
-
else $cols .=', `'.$col->Field.'`';
|
2031 |
-
//omit id field from export
|
2032 |
-
if($exclude_id && $col->Field!="id"){
|
2033 |
-
if($i==0) $fields .='`'.$col->Field.'`';
|
2034 |
-
else $fields .=', `'.$col->Field.'`';
|
2035 |
-
}
|
2036 |
-
$i++;
|
2037 |
-
} //end foreach $table_structure
|
2038 |
-
if(!$exclude_id) $fields=$cols;
|
2039 |
-
|
2040 |
-
// Batch by $row_inc
|
2041 |
-
if($segment=='none'){
|
2042 |
-
$row_start=0;$row_inc=ROWS_PER_SEGMENT;
|
2043 |
}else{
|
2044 |
-
$
|
2045 |
-
$
|
|
|
2046 |
}
|
2047 |
-
$
|
2048 |
-
|
2049 |
-
$
|
2050 |
-
|
2051 |
-
|
2052 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2053 |
do{
|
2054 |
-
|
2055 |
-
$
|
2056 |
-
|
2057 |
-
|
2058 |
-
$errno
|
2059 |
-
$
|
2060 |
-
|
2061 |
-
|
2062 |
-
|
2063 |
-
if($
|
2064 |
-
|
2065 |
-
|
2066 |
-
|
2067 |
-
|
2068 |
-
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
|
|
|
|
2073 |
}
|
2074 |
-
if(
|
2075 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2076 |
}else{
|
2077 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2078 |
}
|
2079 |
-
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
if($
|
2085 |
-
|
2086 |
-
|
2087 |
-
$
|
|
|
2088 |
}else{
|
2089 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2090 |
}
|
2091 |
-
$
|
2092 |
-
|
2093 |
-
|
2094 |
-
|
2095 |
-
|
2096 |
-
|
2097 |
-
$
|
2098 |
-
$
|
2099 |
-
|
2100 |
-
|
2101 |
-
$
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
|
2106 |
-
|
2107 |
-
|
2108 |
-
|
2109 |
-
|
2110 |
-
|
2111 |
-
|
2112 |
-
|
2113 |
-
$
|
2114 |
-
|
2115 |
-
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
}
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
|
2128 |
-
$
|
2129 |
-
}
|
2130 |
-
|
2131 |
-
|
2132 |
-
$wassup_user_settings['ualert_message']=sprintf(__("%d out of %d records exported.","wassup"),$export_count,$numrecords)." ".sprintf(__("Last record ID: %d","wassup"),$last_recid);
|
2133 |
-
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
2134 |
-
$saved=self::update_wassupmeta($table,'_export_recid-'.$current_user->ID,$last_recid,0);
|
2135 |
}
|
2136 |
-
|
2137 |
-
} // end backup_table
|
2138 |
|
2139 |
} //end class wassupDb
|
2140 |
} //end if !class_exists
|
@@ -2188,26 +2316,40 @@ class wassupURI {
|
|
2188 |
}
|
2189 |
/** Return the url and "path" for wordpress site's "home". */
|
2190 |
static function get_sitehome(){
|
2191 |
-
$sitehome=get_option('siteurl');
|
2192 |
if(is_multisite() && is_network_admin()){
|
2193 |
$sitehome=network_home_url();
|
2194 |
-
}
|
2195 |
-
$sitehome=get_option('
|
2196 |
}
|
|
|
2197 |
return $sitehome;
|
2198 |
-
} //end
|
2199 |
|
2200 |
//** Return the url and "path" for wordpress admin. */
|
2201 |
static function get_wphome(){
|
2202 |
-
$wphome=admin_url();
|
2203 |
if(is_multisite() && is_network_admin()){
|
2204 |
$wphome=network_admin_url();
|
2205 |
-
}
|
2206 |
-
$wphome=
|
2207 |
}
|
|
|
2208 |
return $wphome;
|
2209 |
} //end get_wphome
|
2210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2211 |
/**
|
2212 |
* Return request url in a link tag or span tag if it is suspicious or 404.
|
2213 |
* Security Note: returned href, tooltip, and tag contents are escaped within 'add_siteurl' or 'disarm_attack methods, or by 'stringShortener' function
|
@@ -2227,22 +2369,15 @@ class wassupURI {
|
|
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));
|
2234 |
-
else $urllink .=self::cleanURL("$urlrequested");
|
2235 |
-
$urllink .='</span>';
|
2236 |
}elseif(preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-login\.php|^\[[0-9]{3}\]/',$urlrequested)>0){
|
2237 |
-
$urllink='<span'.$tooltip.'>';
|
2238 |
-
if($chars >0) $urllink .=stringShortener("$urlrequested",round($chars*.9,0));
|
2239 |
-
else $urllink .=self::cleanURL("$urlrequested");
|
2240 |
-
$urllink .='</span>';
|
2241 |
}else{
|
2242 |
-
$urllink='<a href="'.self::add_siteurl($request).'" target="_BLANK">';
|
2243 |
-
if($chars>0) $urllink .=stringShortener("$urlrequested",$chars);
|
2244 |
-
else $urllink=self::cleanURL("$urlrequested");
|
2245 |
-
$urllink .='</a>';
|
2246 |
}
|
2247 |
return $urllink;
|
2248 |
}
|
@@ -2269,6 +2404,8 @@ class wassupURI {
|
|
2269 |
$tooltip="";
|
2270 |
$ref=strtolower($referer);
|
2271 |
if(strlen($ref)>60) $tooltip=' title="'.self::cleanURL($ref).'" ';
|
|
|
|
|
2272 |
//referrer from site or site-admin
|
2273 |
if(stristr($referer,$wpurl)==$referer || stristr($referer,$siteurl)==$referer){
|
2274 |
//direct hit when referrer == request
|
@@ -2276,13 +2413,13 @@ class wassupURI {
|
|
2276 |
$referrerlink='<span>'.__("direct hit","wassup").'</span>';
|
2277 |
}elseif($spam==2 || self::is_xss($ref)){
|
2278 |
//show spam referrers w/o link
|
2279 |
-
$referrerlink='<span class="malware"'.$tooltip.'>'.
|
2280 |
}elseif($spam >0){
|
2281 |
-
$referrerlink='<span'.$tooltip.'>'.
|
2282 |
}elseif(is_user_logged_in()){
|
2283 |
//show 'wp-login', 'wp-includes', and 'wp-content' referrers to logged-in users
|
2284 |
if(strpos($ref,'wp-login.php')>0 || strpos($ref,'/wp-includes/')>0 || strpos($ref,'/wp-content/')>0){
|
2285 |
-
$referrerlink='<a href="'.self::cleanURL($referer).'" target=_"BLANK"'.$tooltip.'>'.
|
2286 |
}else{
|
2287 |
$referrerlink="<span{$tooltip}>".__("from your site","wassup")."</span>";
|
2288 |
}
|
@@ -2294,15 +2431,15 @@ class wassupURI {
|
|
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.'>'.
|
2298 |
}elseif($spam >0 || strpos($ref,'http')===false || strpos($ref,'http')>0 || preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-login\.php/i',$ref)>0){
|
2299 |
-
$referrerlink='<span'.$tooltip.'>'.
|
2300 |
}else{
|
2301 |
$rurl=parse_url($referer);
|
2302 |
if(!empty($rurl['host']) && preg_match('/\.[a-z]{2,4}$/',$rurl['host'])>0){
|
2303 |
$favicon_img='<img src="http://www.google.com/s2/favicons?domain='.$rurl['host'].'" class="favicon"> ';
|
2304 |
}
|
2305 |
-
$referrerlink=$favicon_img.'<a href="'.self::cleanURL($referer).'" target=_"BLANK"'.$tooltip.'>'.
|
2306 |
}
|
2307 |
}
|
2308 |
}else{
|
@@ -2397,17 +2534,25 @@ class wassupURI {
|
|
2397 |
* @return string
|
2398 |
*/
|
2399 |
static function get_menu_arg(){
|
2400 |
-
$menuarg=
|
2401 |
if(isset($_GET['page'])) $menuarg=$_GET['page'];
|
2402 |
if(stristr($menuarg,"wassup")!==false){
|
2403 |
-
$
|
2404 |
-
|
2405 |
-
|
2406 |
-
|
2407 |
-
|
2408 |
-
|
2409 |
-
|
2410 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2411 |
}
|
2412 |
}
|
2413 |
return $menuarg;
|
@@ -2451,9 +2596,178 @@ class wassupURI {
|
|
2451 |
$ajaxurl=admin_url('index.php?page=wassup-stats');
|
2452 |
}elseif($action=="Topstats"){
|
2453 |
$ajaxurl=self::get_admin_url('index.php?page=wassup-stats');
|
|
|
|
|
2454 |
}
|
2455 |
return $ajaxurl;
|
2456 |
}
|
2457 |
} //end Class wassupURI
|
2458 |
} //end if !class_exists
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2459 |
?>
|
63 |
var $wassup_refspam = "1";
|
64 |
var $wassup_attack = "1";
|
65 |
var $wassup_hack = "1";
|
66 |
+
var $refspam_whitelist=""; //new in v1.9.4: for incorrectly labeled referrer spam
|
67 |
|
68 |
/* table/file management settings */
|
69 |
var $wassup_table;
|
172 |
'wassup_spamcheck' =>"1",
|
173 |
'wassup_spam' =>"1",
|
174 |
'wassup_refspam' =>"1",
|
175 |
+
'refspam_whitelist' =>"",
|
176 |
'wassup_exclude' =>"",
|
177 |
'wassup_exclude_host' =>"",
|
178 |
'wassup_exclude_url' =>"",
|
638 |
if(function_exists('sanitize_text_field')) $text=sanitize_text_field($input);
|
639 |
else $text=strip_tags(html_entity_decode(wp_kses($input,array())));
|
640 |
//only alphanumeric chars allowed with few exceptions
|
641 |
+
//since v1.9.3 allow '@' char for email searches
|
642 |
+
//v1.9.4 bugfix: allow '/?&=' chars for url searches
|
643 |
+
$cleantext=preg_replace('#([^0-9a-z\-_\.,\:\*\#/&\?=@\'" ]+)#i','',$text);
|
644 |
return $cleantext;
|
645 |
}
|
646 |
/** strip bad characters from a text or textarea input for URLs. @since v1.9 */
|
687 |
$this->wassup_dashboard_chart=(!empty($_POST['wassup_dashboard_chart'])?"1":"0");
|
688 |
$this->wassup_geoip_map=(!empty($_POST['wassup_geoip_map'])?"1":"0");
|
689 |
if(!empty($_POST['wassup_googlemaps_key'])){
|
690 |
+
$this->wassup_googlemaps_key=$this->cleanFormText($_POST['wassup_googlemaps_key']);
|
|
|
|
|
691 |
}else{
|
692 |
$this->wassup_googlemaps_key="";
|
693 |
}
|
724 |
$this->wassup_spider=(!empty($_POST['wassup_spider'])?"1":"0");
|
725 |
$this->wassup_spam=(!empty($_POST['wassup_spam'])?"1":"0");
|
726 |
$this->wassup_refspam=(!empty($_POST['wassup_refspam'])?"1":"0");
|
727 |
+
if($_POST['refspam_whitelist'] != $this->refspam_whitelist)
|
728 |
+
$this->refspam_whitelist=$this->cleanFormText($_POST['refspam_whitelist']);
|
729 |
$this->wassup_hack=(!empty($_POST['wassup_hack'])?"1":"0");
|
730 |
$this->wassup_attack=(!empty($_POST['wassup_attack'])?"1":"0");
|
731 |
if($_POST['wassup_exclude'] != $this->wassup_exclude)
|
955 |
$wassuphash=wp_hash($hashkey);
|
956 |
return $wassuphash;
|
957 |
}
|
958 |
+
/** Retrieve or query a Google!Map API key @since v1.9.4 */
|
959 |
+
public function get_apikey(){
|
960 |
+
$apikey="";
|
961 |
+
//try user's own api key
|
962 |
+
if(!empty($this->wassup_googlemaps_key)){
|
963 |
+
$apikey=$this->wassup_googlemaps_key;
|
964 |
+
}else{
|
965 |
+
//check for a builtin api key, if exist
|
966 |
+
$meta_key="_googlemaps_key";
|
967 |
+
if(is_multisite()) $sitehome=network_home_url();
|
968 |
+
else $sitehome=get_option('home');
|
969 |
+
$homedomain=wassupURI::get_urldomain($sitehome);
|
970 |
+
$apikey=wassupDb::get_wassupmeta($homedomain,$meta_key);
|
971 |
+
}
|
972 |
+
return $apikey;
|
973 |
+
}
|
974 |
+
/** Do a remote lookup of Google!Map API key @since v1.9.4 */
|
975 |
+
static function lookup_apikey(){
|
976 |
+
global $wdebug_mode;
|
977 |
+
$error_msg="";
|
978 |
+
$apikey=false;
|
979 |
+
//no lookup key if key is already in settings
|
980 |
+
$wassup_settings=get_option('wassup_settings');
|
981 |
+
if(!empty($wassup_settings['wassup_googlemaps_key'])){
|
982 |
+
return;
|
983 |
+
}
|
984 |
+
$ip=0;
|
985 |
+
//for computers behind proxy servers:
|
986 |
+
if(isset($_SERVER['SERVER_ADDR'])){
|
987 |
+
$ip=wassupIP::validIP($_SERVER['SERVER_ADDR']);
|
988 |
+
}
|
989 |
+
if(empty($ip) && !empty($_SERVER['HTTP_X_FORWARDED_HOST'])){
|
990 |
+
$ip=wassupIP::validIP($_SERVER['HTTP_X_FORWARDED_HOST']);
|
991 |
+
}
|
992 |
+
if(empty($ip) && !empty($_SERVER['HTTP_X_FORWARDED_SERVER'])){
|
993 |
+
$ip=wassupIP::validIP($_SERVER['HTTP_X_FORWARDED_SERVER']);
|
994 |
+
}
|
995 |
+
if(empty($ip)){
|
996 |
+
$ipAddress=wassupIP::get_clientAddr();
|
997 |
+
$ip=wassupIP::clientIP($ipAddress);
|
998 |
+
}
|
999 |
+
//do lookup
|
1000 |
+
$api_url="http://helenesit.com/utils/wassup-webservice/?ws=mk&ip=".$ip;
|
1001 |
+
if($wdebug_mode) $api_url .='&debug_mode=1';
|
1002 |
+
if(!function_exists('wFetchAPIData')){
|
1003 |
+
include_once(WASSUPDIR."/lib/main.php");
|
1004 |
+
}
|
1005 |
+
$jsondata=wFetchAPIData($api_url);
|
1006 |
+
if(!empty($jsondata)){
|
1007 |
+
if(strpos($jsondata,'{')!==false) $apidata=json_decode($jsondata,true);
|
1008 |
+
else $apidata=$jsondata;
|
1009 |
+
if(is_array($apidata) && !empty($apidata['wassup_googlemaps_key'])){
|
1010 |
+
$apikey=$apidata['wassup_googlemaps_key'];
|
1011 |
+
}elseif(is_string($apidata) && preg_match('/[^0-9a-z\-_]/',$apidata)==0){
|
1012 |
+
$apikey=$apidata;
|
1013 |
+
}else{
|
1014 |
+
if(is_wp_error($apidata)){
|
1015 |
+
$error_msg=__FUNCTION__." googlemaps key lookup error ".$apidata->get_error_code().": ".$apidata->get_error_message();
|
1016 |
+
}else{
|
1017 |
+
$error_msg=__FUNCTION__." googlemaps key lookup error: Non-json data returned";
|
1018 |
+
$error_msg .= maybe_serialize($apidata);
|
1019 |
+
}
|
1020 |
+
}
|
1021 |
+
}else{
|
1022 |
+
$error_msg=__FUNCTION__." googlemaps key lookup for ".$api_url." failed";
|
1023 |
+
}
|
1024 |
+
//save apikey
|
1025 |
+
if(!empty($apikey)){
|
1026 |
+
$meta_key="_googlemaps_key";
|
1027 |
+
if(is_multisite()) $sitehome=network_home_url();
|
1028 |
+
else $sitehome=get_option('home');
|
1029 |
+
$homedomain=wassupURI::get_urldomain($sitehome);
|
1030 |
+
$updated=wassupDb::update_wassupmeta($homedomain,$meta_key,$apikey,0);
|
1031 |
+
}elseif(!empty($error_msg)){ //debug
|
1032 |
+
if($wdebug_mode){
|
1033 |
+
return $error_msg;
|
1034 |
+
}
|
1035 |
+
}
|
1036 |
+
} //end lookup_apikey
|
1037 |
+
|
1038 |
/**
|
1039 |
* Return a PHP command that can execute an external program via the server shell ('shell_exec' or 'exec').
|
1040 |
* @since v1.9.1
|
1101 |
/** display a system notice or user message in admin panel. */
|
1102 |
public function showMessage($message="") {
|
1103 |
global $wp_version,$current_user;
|
1104 |
+
$notice_html="";
|
1105 |
if(empty($message)){
|
1106 |
//prioritize user alerts and show anytime
|
1107 |
if(!is_object($current_user) || empty($current_user->ID)) $user=wp_get_current_user();
|
1128 |
else $mclass="notice notice-info is-dismissible";
|
1129 |
}
|
1130 |
//preface message with version # when not wassup page
|
1131 |
+
if(empty($_GET['page'])){
|
1132 |
+
$notice_html ='<div id="wassup-message" class="'.$mclass.'">WassUp '.WASSUPVERSION.' '.esc_attr($message).'</div>';
|
1133 |
+
}elseif(strpos($_GET['page'],'wassup')===false){
|
1134 |
+
$notice_html ='<div id="wassup-message" class="'.$mclass.'">WassUp '.WASSUPVERSION.' '.esc_attr($message).'</div>';
|
1135 |
+
}else{
|
1136 |
+
$notice_html='<div id="wassup-message" class="'.$mclass.'">'.esc_attr($message).'</div>';
|
1137 |
+
}
|
1138 |
//show alert message
|
1139 |
echo $notice_html."\n";
|
1140 |
//clear displayed alert message from settings
|
1970 |
}
|
1971 |
} //end auto_cleanup
|
1972 |
|
1973 |
+
/** Retrieve records from a table by record id @since v1.9.4 */
|
1974 |
+
static function get_records($table,$startid=0,$condition="",$limit=0){
|
1975 |
+
global $wpdb,$wdebug_mode;
|
1976 |
+
|
1977 |
+
if(empty($table) || !self::table_exists($table)){
|
1978 |
+
$error_msg=__("Missing or incorrect table name","wassup").' '.$table;
|
1979 |
+
$error=new WP_Error('1',$error_msg);
|
1980 |
+
return $error;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1981 |
}
|
1982 |
+
//Extend php script timeout to 10 minutes
|
|
|
|
|
|
|
1983 |
$mtimeout=60;
|
1984 |
$stimeout=ini_get('max_execution_time');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1985 |
if(is_numeric($stimeout) && $stimeout>0 && $stimeout < 990){
|
1986 |
$disabled_funcs=ini_get('disable_functions');
|
1987 |
if((empty($disabled_funcs) || strpos($disabled_funcs,'set_time_limit')===false) && !ini_get('safe_mode')){
|
1988 |
$stimeout=10*60;
|
1989 |
@set_time_limit($stimeout);
|
1990 |
}
|
|
|
1991 |
}elseif($stimeout===0){
|
1992 |
$stimeout=10*60;
|
1993 |
}
|
1994 |
//set mysql wait timeout to 15 minutes
|
1995 |
+
$timelimit=15*60;
|
1996 |
$mtimeout=$wpdb->get_var("SELECT @@session.wait_timeout AS mtimeout FROM DUAL");
|
1997 |
if(!empty($mtimeout) && !is_wp_error($mtimeout)){
|
1998 |
if(!is_numeric($mtimeout) || $mtimeout < $timelimit){
|
2005 |
}else{
|
2006 |
$results=$wpdb->query(sprintf("SET wait_timeout = %d",($timelimit+60)));
|
2007 |
}
|
2008 |
+
//@TODO - check table for autoincrement field name and use it for recid field
|
2009 |
+
$recid='id';
|
2010 |
+
// do mysql query and return results
|
2011 |
+
if(!is_numeric($startid)) $startid=0;
|
2012 |
+
if(stristr($condition,' WHERE ')===false){
|
2013 |
+
$qry=sprintf("SELECT * FROM `%s` WHERE `id` > %d %s",esc_attr($table),$startid,$condition);
|
2014 |
+
}elseif($startid >0){
|
2015 |
+
$qry=sprintf("SELECT * FROM `%s` %s AND `id` > %d",esc_attr($table),$condition,$startid);
|
2016 |
+
}else{
|
2017 |
+
$qry=sprintf("SELECT * FROM `%s` %s",esc_attr($table),$condition);
|
2018 |
+
}
|
2019 |
+
if(!empty($limit) && is_numeric($limit) && $limit >0 && stristr($qry,' LIMIT ')===false){
|
2020 |
+
$qry .= sprintf(" LIMIT %d",$limit);
|
2021 |
+
}
|
2022 |
+
$table_records=$wpdb->get_results($qry);
|
2023 |
+
return($table_records);
|
2024 |
+
} //end get_records
|
2025 |
+
|
2026 |
+
/** Export Wassup records in SQL or CSV format @since v1.9.4 */
|
2027 |
+
static function export_records($table,$start_id,$wherecondition,$dtype="sql"){
|
2028 |
+
global $wpdb,$current_user,$wassup_options,$wdebug_mode;
|
2029 |
+
//#1st verify that export request is valid
|
2030 |
+
if(!isset($_REQUEST['export']) || !is_user_logged_in()){
|
2031 |
+
$err_msg =__("Export ERROR: Invalid Export request","wassup");
|
2032 |
+
$wassup_options->wassup_alert_message=$err_msg;
|
2033 |
+
$wassup_options->saveSettings();
|
2034 |
+
return false;
|
2035 |
+
}
|
2036 |
+
//start script timer
|
2037 |
+
$stimer_start=time();
|
2038 |
+
$msg="";
|
2039 |
+
$err_msg=false;
|
2040 |
+
if(!is_object($current_user) || empty($current_user->ID)){
|
2041 |
+
$user=wp_get_current_user();
|
2042 |
+
}
|
2043 |
+
$wassup_user_settings=get_user_option('_wassup_settings',$current_user->ID);
|
2044 |
+
if(empty($table)) $table=$wassup_options->wassup_table;
|
2045 |
+
$sql_table_name=$wpdb->get_var(sprintf("SHOW TABLES LIKE '%s'",wassupDb::esc_like(esc_attr($table))));
|
2046 |
+
if(empty($sql_table_name) || $sql_table_name!=$table || is_wp_error($sql_table_name)){
|
2047 |
+
$err_msg=sprintf(__('Export ERROR: TABLE %s not found!','wassup'), esc_attr($table));
|
2048 |
+
wassup_log_message($err_msg);
|
2049 |
+
return false;
|
2050 |
+
}
|
2051 |
+
//for validating field data in export
|
2052 |
+
$search=array("\x00", "\x0a", "\x0d", "\x1a");
|
2053 |
+
$replace=array('\0','\n','\r','\Z');
|
2054 |
$ints=array();
|
2055 |
+
$table_structure=$wpdb->get_results(sprintf("SHOW COLUMNS FROM `%s`",esc_attr($table)));
|
2056 |
+
if(!is_wp_error($table_structure) && false != $table_structure){
|
2057 |
+
foreach($table_structure as $col){
|
2058 |
+
//differentiate numeric from char fields
|
|
|
2059 |
if((0===strpos(strtolower($col->Type),'tinyint')) ||
|
2060 |
(0===strpos(strtolower($col->Type),'smallint')) ||
|
2061 |
(0===strpos(strtolower($col->Type),'mediumint')) ||
|
2062 |
(0===strpos(strtolower($col->Type),'int')) ||
|
2063 |
(0===strpos(strtolower($col->Type),'bigint')) ||
|
2064 |
(0===strpos(strtolower($col->Type),'timestamp'))){
|
|
|
2065 |
$ints[$col->Field]="1";
|
2066 |
}
|
2067 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2068 |
}else{
|
2069 |
+
$err_msg=sprintf(__('Export ERROR: Unable to get TABLE %s structure!','wassup'), esc_attr($table));
|
2070 |
+
wassup_log_message($err_msg);
|
2071 |
+
return false;
|
2072 |
}
|
2073 |
+
$SEG_LIMIT=1000; //1000 records per write block
|
2074 |
+
//only sql or csv export formats supported
|
2075 |
+
if($dtype=="csv" || $dtype=="CSV"){
|
2076 |
+
$dtype="csv";
|
2077 |
+
}else{
|
2078 |
+
$dtype="sql";
|
2079 |
+
$sql_header="";
|
2080 |
+
$sql_fields="";
|
2081 |
+
$sql_data="";
|
2082 |
+
//create SQL header from table structure
|
2083 |
+
$result=$wpdb->get_results(sprintf("SHOW CREATE TABLE `%s`",esc_attr($table)),ARRAY_N);
|
2084 |
+
if(empty($result[0][1]) || is_wp_error($result)){
|
2085 |
+
$err_msg=sprintf(__('Error with "SHOW CREATE TABLE" for %s.','wassup'), esc_attr($table));
|
2086 |
+
wassup_log_message($err_msg);
|
2087 |
+
} else {
|
2088 |
+
$table_create=$result[0][1];
|
2089 |
+
$sql_header="#\n# " . sprintf(__('Table structure of table %s','wassup'),esc_attr($table))."\n#\n";
|
2090 |
+
$sql_header .= preg_replace(array('/^CREATE\sTABLE\s(IF\sNOT\sEXISTS\s)?/i', '/AUTO_INCREMENT\=\d+\s/i'),array('CREATE TABLE IF NOT EXISTS ',''),$table_create).' ;';
|
2091 |
+
$sql_header .= "\n#\n# ".sprintf(__('Data contents of table %s','wassup'),esc_attr($table))."\n#\n";
|
2092 |
+
}
|
2093 |
+
}
|
2094 |
+
//set starting rec id of export query
|
2095 |
+
if(empty($start_id) || !is_numeric($start_id)){
|
2096 |
+
$start_id=0;
|
2097 |
+
if(isset($_REQUEST['startid']) && is_numeric($_REQUEST['startid'])){
|
2098 |
+
$start_id=(int)$_REQUEST['startid'];
|
2099 |
+
}
|
2100 |
+
}
|
2101 |
+
$lastexported_id=0;
|
2102 |
+
$row_count=0;
|
2103 |
+
$exporttot=0;
|
2104 |
+
$n=0;
|
2105 |
+
//open output stream for export
|
2106 |
+
$output=false;
|
2107 |
+
$outfile=$table.gmdate('Y-m-d').'.'.$dtype;
|
2108 |
+
$output=fopen('php://output','w');
|
2109 |
+
if($output){
|
2110 |
+
//Extend php script timeout to 10 minutes
|
2111 |
+
$stimeout=ini_get('max_execution_time');
|
2112 |
+
if(is_numeric($stimeout) && $stimeout>0 && $stimeout < 600){
|
2113 |
+
$disabled_funcs=ini_get('disable_functions');
|
2114 |
+
if((empty($disabled_funcs) || strpos($disabled_funcs,'set_time_limit')===false) && !ini_get('safe_mode')){
|
2115 |
+
$stimeout=10*60;
|
2116 |
+
@set_time_limit($stimeout);
|
2117 |
+
}
|
2118 |
+
}elseif($stimeout===0){
|
2119 |
+
$stimeout=10*60;
|
2120 |
+
}else{
|
2121 |
+
$stimeout=60; //assume 1 minute
|
2122 |
+
}
|
2123 |
+
//extend mysql timeout
|
2124 |
+
$mtimeout=$wpdb->get_var("SELECT @@session.wait_timeout AS mtimeout FROM DUAL");
|
2125 |
+
if(!empty($mtimeout) && !is_wp_error($mtimeout) && is_numeric($mtimeout) && $mtimeout< 900){
|
2126 |
+
$result=$wpdb->query("SET wait_timeout=900");
|
2127 |
+
}
|
2128 |
do{
|
2129 |
+
//get records
|
2130 |
+
$exportrecs=wassupDb::get_records($table,$start_id,"$wherecondition",$SEG_LIMIT);
|
2131 |
+
if(is_wp_error($exportrecs)){
|
2132 |
+
$errno=$exportrecs->get_error_code();
|
2133 |
+
$err_msg=sprintf(__("%s Export ERROR: %s","wassup"),strtoupper($dtype),$errno.' '.$exportrecs->get_error_message());
|
2134 |
+
$exportrecs=array();
|
2135 |
+
break;
|
2136 |
+
}
|
2137 |
+
$rec_count=count($exportrecs);
|
2138 |
+
if($rec_count ==0){
|
2139 |
+
//nothing to do
|
2140 |
+
$err_msg=sprintf(__("%s Export ERROR: No data","wassup"),strtoupper($dtype));
|
2141 |
+
break;
|
2142 |
+
}
|
2143 |
+
//get header info by export type
|
2144 |
+
if($n==0){
|
2145 |
+
//get field names from 1st record
|
2146 |
+
$wassup_rec=(array)$exportrecs[0];
|
2147 |
+
//omit record id field, if specified
|
2148 |
+
if(!empty($wassup_options->export_omit_recid)){
|
2149 |
+
unset($wassup_rec['id']);
|
2150 |
}
|
2151 |
+
if(!is_multisite()) unset($wassup_rec['subsite_id']);
|
2152 |
+
$fields=array_keys($wassup_rec);
|
2153 |
+
//start download
|
2154 |
+
header('Content-Disposition: attachment; filename='.$outfile);
|
2155 |
+
header('Pragma: no-cache');
|
2156 |
+
header('Expires: 0');
|
2157 |
+
header('Content-Type: text/'.$dtype.'; charset=utf-8');
|
2158 |
+
//header infos
|
2159 |
+
if($dtype == "csv"){
|
2160 |
+
//CSV header is a single row of column names
|
2161 |
+
fputcsv($output,$fields);
|
2162 |
}else{
|
2163 |
+
//write sql header
|
2164 |
+
fwrite($output,$sql_header);
|
2165 |
+
$i=0;
|
2166 |
+
//field list for sql-insert
|
2167 |
+
$sql_fields="INSERT INTO `".esc_attr($table).'` (';
|
2168 |
+
foreach($fields AS $col){
|
2169 |
+
if(empty($wassup_options->export_omit_recid) || $col != 'id'){
|
2170 |
+
if($i >0) $sql_fields .=',';
|
2171 |
+
$sql_fields .='`'.$col.'`';
|
2172 |
+
$i++;
|
2173 |
+
}
|
2174 |
+
}
|
2175 |
+
$sql_fields .= ') VALUES';
|
2176 |
+
}
|
2177 |
+
}
|
2178 |
+
$exp_n=0;
|
2179 |
+
$sql_data="";
|
2180 |
+
//output records
|
2181 |
+
foreach($exportrecs AS $wassup_obj){
|
2182 |
+
$wassup_rec=(array)$wassup_obj;
|
2183 |
+
//track record id #
|
2184 |
+
if($wassup_rec['id'] > $start_id){
|
2185 |
+
$lastexported_id=$wassup_rec['id'];
|
2186 |
}
|
2187 |
+
//omit rec id + subsite fields from data
|
2188 |
+
if(!empty($wassup_options->export_omit_recid)){
|
2189 |
+
unset($wassup_rec['id']);
|
2190 |
+
}
|
2191 |
+
if(!is_multisite()) unset($wassup_rec['subsite_id']);
|
2192 |
+
if($dtype == "csv"){
|
2193 |
+
//convert timestamp
|
2194 |
+
$date24time=gmdate('Y-m-d H:i:s',$wassup_rec['timestamp']);
|
2195 |
+
$wassup_rec['timestamp']=$date24time;
|
2196 |
+
fputcsv($output,$wassup_rec);
|
2197 |
}else{
|
2198 |
+
//output sql-insert statement
|
2199 |
+
if($exp_n == 0){
|
2200 |
+
$sql_data =$sql_fields;
|
2201 |
+
}elseif($exp_n%100==0){
|
2202 |
+
//write completed stmt
|
2203 |
+
$sql_data .=';';
|
2204 |
+
fwrite($output,$sql_data);
|
2205 |
+
$sql_data ="\n$sql_fields";
|
2206 |
+
}else{
|
2207 |
+
$sql_data .=',';
|
2208 |
+
}
|
2209 |
+
//the data
|
2210 |
+
$sql_data .="\n(";
|
2211 |
+
$i=0;
|
2212 |
+
foreach($wassup_rec AS $key =>$val){
|
2213 |
+
if($i >0) $sql_data .= ",";
|
2214 |
+
if(isset($ints[$key])){
|
2215 |
+
$sql_data .=(''===$val)?"''":$val;
|
2216 |
+
}else{
|
2217 |
+
$sql_data .="'".esc_sql(str_replace($search,$replace,$val))."'";
|
2218 |
+
}
|
2219 |
+
$i++;
|
2220 |
+
} //end foreach
|
2221 |
+
$sql_data .=")";
|
2222 |
}
|
2223 |
+
$exp_n +=1;
|
2224 |
+
} //end foreach exportrec
|
2225 |
+
$exporttot +=$exp_n;
|
2226 |
+
if($lastexported_id > $start_id) $start_id=$lastexported_id;
|
2227 |
+
//output last sql statement
|
2228 |
+
if(!empty($sql_data)){
|
2229 |
+
$sql_data .=';'."\n";
|
2230 |
+
fwrite($output,$sql_data);
|
2231 |
+
}
|
2232 |
+
//stop export when stimeout limit is reached
|
2233 |
+
$time_passed = time() - $stimer_start;
|
2234 |
+
$n+=1;
|
2235 |
+
} while($rec_count >0 && $time_passed < $stimeout);
|
2236 |
+
//add msg, close stream and flush buffer
|
2237 |
+
//show last record id # in message
|
2238 |
+
if(!empty($lastexported_id)){
|
2239 |
+
$msg = $exporttot." ".strtoupper($dtype)." ".__("records exported!","wassup");
|
2240 |
+
$msg .= " ".__("Last export record id","wassup").": ".$lastexported_id;
|
2241 |
+
}
|
2242 |
+
//output footer @TODO
|
2243 |
+
$sql_footer="";
|
2244 |
+
//save export message
|
2245 |
+
if(isset($_REQUEST['mid'])) $msgkey=$_REQUEST['mid'];
|
2246 |
+
else $msgkey="0";
|
2247 |
+
if(!empty($msg)){
|
2248 |
+
wassup_log_message($msg,"_export_msg",$msgkey);
|
2249 |
+
}elseif(!empty($err_msg)){
|
2250 |
+
wassup_log_message($err_msg,"_export_msg",$msgkey);
|
2251 |
+
}
|
2252 |
+
//close export stream, flush buffer
|
2253 |
+
fclose($output);
|
2254 |
+
if($n >0) die();
|
2255 |
+
}else{
|
2256 |
+
$err_msg=strtoupper($dtype).' Export ERROR: Cannot open stream php://output';
|
2257 |
+
} //end if output
|
2258 |
+
//export failed if get here, so save error and return
|
2259 |
+
if(!empty($err_msg)){
|
2260 |
+
wassup_log_message($err_msg." ".$msg);
|
2261 |
+
}else{
|
2262 |
+
$err_msg=__("Export failed!","wassup")." ".$msg;
|
2263 |
+
wassup_log_message($err_msg);
|
|
|
|
|
|
|
2264 |
}
|
2265 |
+
} //end export_records
|
|
|
2266 |
|
2267 |
} //end class wassupDb
|
2268 |
} //end if !class_exists
|
2316 |
}
|
2317 |
/** Return the url and "path" for wordpress site's "home". */
|
2318 |
static function get_sitehome(){
|
|
|
2319 |
if(is_multisite() && is_network_admin()){
|
2320 |
$sitehome=network_home_url();
|
2321 |
+
}else{
|
2322 |
+
$sitehome=get_option('siteurl');
|
2323 |
}
|
2324 |
+
if(empty($sitehome)) $sitehome=get_option('home');
|
2325 |
return $sitehome;
|
2326 |
+
} //end get_sitehome
|
2327 |
|
2328 |
//** Return the url and "path" for wordpress admin. */
|
2329 |
static function get_wphome(){
|
|
|
2330 |
if(is_multisite() && is_network_admin()){
|
2331 |
$wphome=network_admin_url();
|
2332 |
+
}else{
|
2333 |
+
$wphome=admin_url();
|
2334 |
}
|
2335 |
+
if(empty($wphome)) $wphome=get_option('wpurl');
|
2336 |
return $wphome;
|
2337 |
} //end get_wphome
|
2338 |
|
2339 |
+
/** Return the "domain" part of a url/this site @since v1.9.4 */
|
2340 |
+
static function get_urldomain($urlparam=""){
|
2341 |
+
$domain=false;
|
2342 |
+
$url=array();
|
2343 |
+
//default param is this site's url
|
2344 |
+
if(empty($urlparam)) $urlparam=self::get_sitehome();
|
2345 |
+
if(strpos($urlparam,'//')!==false) $url=parse_url($urlparam);
|
2346 |
+
if(!empty($url['host'])){
|
2347 |
+
$domain=preg_replace('/^(w{2,3}\d?\.)/','',$url['host']);
|
2348 |
+
}elseif(preg_match('#(?://|ww[0-9w]\.|^)([^?.\# %/=&]+\.(?:[^?\# %/=&]+))(?:[?\# /]|$)#',$urlparam,$pcs)>0){
|
2349 |
+
$domain=preg_replace('/^(w{2,3}\d?\.)/','',$pcs[1]);
|
2350 |
+
}
|
2351 |
+
return $domain;
|
2352 |
+
}
|
2353 |
/**
|
2354 |
* Return request url in a link tag or span tag if it is suspicious or 404.
|
2355 |
* Security Note: returned href, tooltip, and tag contents are escaped within 'add_siteurl' or 'disarm_attack methods, or by 'stringShortener' function
|
2369 |
$request=strtolower($urlrequested);
|
2370 |
if(strlen($request)>60) $tooltip=' title="'.self::cleanURL($request).'" ';
|
2371 |
else $tooltip="";
|
2372 |
+
if($chars >0) $cleaned_uri=stringShortener("$urlrequested",round($chars*.9,0));
|
2373 |
+
else $cleaned_uri=self::cleanURL("$urlrequested");
|
2374 |
//no link for spam, 404, wp-admin, wp-login or any possible unidentified spam @since v1.9.1
|
2375 |
if(!empty($spam) || self::is_xss($urlrequested)){
|
2376 |
+
$urllink='<span class="malware"'.$tooltip.'>'.$cleaned_uri.'</span>';
|
|
|
|
|
|
|
2377 |
}elseif(preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-login\.php|^\[[0-9]{3}\]/',$urlrequested)>0){
|
2378 |
+
$urllink='<span'.$tooltip.'>'.$cleaned_uri.'</span>';
|
|
|
|
|
|
|
2379 |
}else{
|
2380 |
+
$urllink='<a href="'.self::add_siteurl($request).'" target="_BLANK">'.$cleaned_uri.'</a>';
|
|
|
|
|
|
|
2381 |
}
|
2382 |
return $urllink;
|
2383 |
}
|
2404 |
$tooltip="";
|
2405 |
$ref=strtolower($referer);
|
2406 |
if(strlen($ref)>60) $tooltip=' title="'.self::cleanURL($ref).'" ';
|
2407 |
+
if($chars >0) $cleaned_uri=stringShortener("$referer",round($chars*.9,0)); //v1.9.4 bugfix
|
2408 |
+
else $cleaned_uri=self::cleanURL("$referer");
|
2409 |
//referrer from site or site-admin
|
2410 |
if(stristr($referer,$wpurl)==$referer || stristr($referer,$siteurl)==$referer){
|
2411 |
//direct hit when referrer == request
|
2413 |
$referrerlink='<span>'.__("direct hit","wassup").'</span>';
|
2414 |
}elseif($spam==2 || self::is_xss($ref)){
|
2415 |
//show spam referrers w/o link
|
2416 |
+
$referrerlink='<span class="malware"'.$tooltip.'>'.$cleaned_uri.'</span>';
|
2417 |
}elseif($spam >0){
|
2418 |
+
$referrerlink='<span'.$tooltip.'>'.$cleaned_uri.'</span>';
|
2419 |
}elseif(is_user_logged_in()){
|
2420 |
//show 'wp-login', 'wp-includes', and 'wp-content' referrers to logged-in users
|
2421 |
if(strpos($ref,'wp-login.php')>0 || strpos($ref,'/wp-includes/')>0 || strpos($ref,'/wp-content/')>0){
|
2422 |
+
$referrerlink='<a href="'.self::cleanURL($referer).'" target=_"BLANK"'.$tooltip.'>'.$cleaned_uri.'</a>';
|
2423 |
}else{
|
2424 |
$referrerlink="<span{$tooltip}>".__("from your site","wassup")."</span>";
|
2425 |
}
|
2431 |
$favicon_img="";
|
2432 |
//no link for spam or wp-admin
|
2433 |
if($spam==2 || self::is_xss($ref)){
|
2434 |
+
$referrerlink='<span class="malware"'.$tooltip.'>'.$cleaned_uri.'</span>';
|
2435 |
}elseif($spam >0 || strpos($ref,'http')===false || strpos($ref,'http')>0 || preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-login\.php/i',$ref)>0){
|
2436 |
+
$referrerlink='<span'.$tooltip.'>'.$cleaned_uri.'</span>';
|
2437 |
}else{
|
2438 |
$rurl=parse_url($referer);
|
2439 |
if(!empty($rurl['host']) && preg_match('/\.[a-z]{2,4}$/',$rurl['host'])>0){
|
2440 |
$favicon_img='<img src="http://www.google.com/s2/favicons?domain='.$rurl['host'].'" class="favicon"> ';
|
2441 |
}
|
2442 |
+
$referrerlink=$favicon_img.'<a href="'.self::cleanURL($referer).'" target=_"BLANK"'.$tooltip.'>'.$cleaned_uri.'</a>';
|
2443 |
}
|
2444 |
}
|
2445 |
}else{
|
2534 |
* @return string
|
2535 |
*/
|
2536 |
static function get_menu_arg(){
|
2537 |
+
$menuarg="wassup";
|
2538 |
if(isset($_GET['page'])) $menuarg=$_GET['page'];
|
2539 |
if(stristr($menuarg,"wassup")!==false){
|
2540 |
+
if(isset($_GET['ml'])){
|
2541 |
+
$menuarg=$_GET['ml'];
|
2542 |
+
}else{
|
2543 |
+
$wassupfolder=basename(WASSUPDIR);
|
2544 |
+
if($menuarg=="wassup-stats"){
|
2545 |
+
$menuarg="wassup";
|
2546 |
+
}elseif($menuarg=="wassup-spia"){
|
2547 |
+
$menuarg="wassup-spy";
|
2548 |
+
}elseif($menuarg==$wassupfolder){
|
2549 |
+
$menuarg="wassup";
|
2550 |
+
}elseif($menuarg=="wassup-options"){
|
2551 |
+
if(isset($_GET['tab'])){
|
2552 |
+
if($_GET['tab']=="donate") $menuarg="wassup-donate";
|
2553 |
+
elseif($_GET['tab']=="faq") $menuarg="wassup-faq";
|
2554 |
+
}
|
2555 |
+
}
|
2556 |
}
|
2557 |
}
|
2558 |
return $menuarg;
|
2596 |
$ajaxurl=admin_url('index.php?page=wassup-stats');
|
2597 |
}elseif($action=="Topstats"){
|
2598 |
$ajaxurl=self::get_admin_url('index.php?page=wassup-stats');
|
2599 |
+
}elseif($action=="Export"){
|
2600 |
+
$ajaxurl=self::get_admin_url('index.php?page=wassup-options&tab=3');
|
2601 |
}
|
2602 |
return $ajaxurl;
|
2603 |
}
|
2604 |
} //end Class wassupURI
|
2605 |
} //end if !class_exists
|
2606 |
+
|
2607 |
+
if(!class_exists('wassupIP')){
|
2608 |
+
/**
|
2609 |
+
* class containing methods to detect and display ip addresses and doains on the internet.
|
2610 |
+
* @since v1.9.4
|
2611 |
+
* @author helened <http://helenesit.com>
|
2612 |
+
*/
|
2613 |
+
class wassupIP {
|
2614 |
+
/** Return a single ip (the client IP) from a comma-separated IP address with no ip validation. @since v1.9 */
|
2615 |
+
static function clientIP($ipAddress){
|
2616 |
+
$IP=false;
|
2617 |
+
if(!empty($ipAddress)){
|
2618 |
+
$ip_proxy=strpos($ipAddress,",");
|
2619 |
+
//if proxy, get 2nd ip...
|
2620 |
+
if($ip_proxy!==false){
|
2621 |
+
$IP=substr($ipAddress,(int)$ip_proxy+1);
|
2622 |
+
}else{
|
2623 |
+
$IP=$ipAddress;
|
2624 |
+
}
|
2625 |
+
}
|
2626 |
+
return $IP;
|
2627 |
+
}
|
2628 |
+
|
2629 |
+
/** return 1st valid IP address in a comma-separated list of IP addresses -Helene D. 2009-03-01 */
|
2630 |
+
static function validIP($multiIP) {
|
2631 |
+
//in case of multiple forwarding
|
2632 |
+
$ips=explode(",",$multiIP);
|
2633 |
+
$goodIP=false;
|
2634 |
+
//look through forwarded list for a good IP
|
2635 |
+
foreach ($ips as $ipa) {
|
2636 |
+
$IP=trim(strtolower($ipa));
|
2637 |
+
//exclude badly formatted ip's @since v1.9.3
|
2638 |
+
if(!empty($IP)){
|
2639 |
+
//exclude dummy IPv4 addresses
|
2640 |
+
if(preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/',$IP)>0){
|
2641 |
+
if($IP!="0.0.0.0" && $IP!="127.0.0.1" && substr($IP,0,8)!="192.168." && substr($IP,0,3)!="10." && substr($IP,0,4)!="172." && substr($IP,0,7)!='192.18.' && substr($IP,0,4)!='255.' && substr($IP,-4)!='.255'){
|
2642 |
+
$goodIP=$IP;
|
2643 |
+
}elseif(substr($IP,0,4)=="172." && preg_match('/172\.(1[6-9]|2[0-9]|3[0-1])\./',$IP)===false){
|
2644 |
+
$goodIP=$IP;
|
2645 |
+
}
|
2646 |
+
//exclude dummy IPv6 addresses
|
2647 |
+
}elseif(preg_match('/^(?:((?:[0-9a-f]{1,4}\:){1,}(?:\:?[0-9a-f]{1,4}){1,})|(\:\:(?:[0-9a-f]{1,4})?))$/i',$IP)>0){
|
2648 |
+
$ipv6=str_replace("0000","0",$IP);
|
2649 |
+
if($ipv6!='::' && $ipv6!='0:0:0:0:0:0:0:0' && $ipv6!='::1' && $ipv6!='0:0:0:0:0:0:0:1' && substr($ipv6,0,2)!='fd' && substr($ipv6,0,5)!='ff01:' && substr($ipv6,0,5)!='ff02:' && substr($ipv6,0,5)!='2001:'){
|
2650 |
+
$goodIP=$IP;
|
2651 |
+
}
|
2652 |
+
}
|
2653 |
+
if(!empty($goodIP)) break;
|
2654 |
+
}
|
2655 |
+
} //end foreach
|
2656 |
+
return $goodIP;
|
2657 |
+
} //end function validIP
|
2658 |
+
/**
|
2659 |
+
* return a validated ip address from http header
|
2660 |
+
* @since v1.9
|
2661 |
+
* @param string
|
2662 |
+
* @return string
|
2663 |
+
*/
|
2664 |
+
static function get_clientAddr($ipAddress=""){
|
2665 |
+
$proxy="";
|
2666 |
+
$hostname="";
|
2667 |
+
$IP="";
|
2668 |
+
//Get the visitor IP from Http_header
|
2669 |
+
if(empty($ipAddress)){
|
2670 |
+
$ipAddress=(isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:"");
|
2671 |
+
}
|
2672 |
+
$IPlist=$ipAddress;
|
2673 |
+
$proxylist=$ipAddress;
|
2674 |
+
$serverAddr=(isset($_SERVER['SERVER_ADDR'])?$_SERVER['SERVER_ADDR']:"");
|
2675 |
+
//for computers behind proxy servers:
|
2676 |
+
//if(!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) $serverAddr=$_SERVER['HTTP_X_FORWARDED_HOST'];
|
2677 |
+
//elseif(!empty($_SERVER['HTTP_X_FORWARDED_SERVER'])) $serverAddr=$_SERVER['HTTP_X_FORWARDED_SERVER'];
|
2678 |
+
//
|
2679 |
+
//check that the client IP is not equal to the host server IP
|
2680 |
+
if(isset($_SERVER['HTTP_CLIENT_IP']) && $serverAddr!=$_SERVER['HTTP_CLIENT_IP'] && $ipAddress!=$_SERVER['HTTP_CLIENT_IP']){
|
2681 |
+
if(strpos($proxylist,$_SERVER["HTTP_CLIENT_IP"])===false){
|
2682 |
+
$IPlist=$_SERVER['HTTP_CLIENT_IP'].",".$proxylist;
|
2683 |
+
$proxylist=$IPlist;
|
2684 |
+
}
|
2685 |
+
$ipAddress=$_SERVER['HTTP_CLIENT_IP'];
|
2686 |
+
}
|
2687 |
+
if(isset($_SERVER['HTTP_X_REAL_IP']) && $serverAddr!=$_SERVER['HTTP_X_REAL_IP'] && $ipAddress!=$_SERVER['HTTP_X_REAL_IP']){
|
2688 |
+
if(strpos($proxylist,$_SERVER["HTTP_X_REAL_IP"])===false){
|
2689 |
+
$IPlist=$_SERVER['HTTP_X_REAL_IP'].",".$proxylist;
|
2690 |
+
$proxylist=$IPlist;
|
2691 |
+
}
|
2692 |
+
$ipAddress=$_SERVER['HTTP_X_REAL_IP'];
|
2693 |
+
}
|
2694 |
+
//check for IP addresses from Cloudflare CDN-hosted sites
|
2695 |
+
if(isset($_SERVER['HTTP_CF_CONNECTING_IP']) && $serverAddr!=$_SERVER['HTTP_CF_CONNECTING_IP'] && $ipAddress!=$_SERVER['HTTP_CF_CONNECTING_IP']){
|
2696 |
+
if(strpos($proxylist,$_SERVER["HTTP_CF_CONNECTING_IP"])===false){
|
2697 |
+
$IPlist=$_SERVER['HTTP_CF_CONNECTING_IP'].",".$proxylist;
|
2698 |
+
$proxylist=$IPlist;
|
2699 |
+
}
|
2700 |
+
$ipAddress=$_SERVER['HTTP_CF_CONNECTING_IP'];
|
2701 |
+
}
|
2702 |
+
//check for proxy addresses
|
2703 |
+
if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]) && $serverAddr!=$_SERVER['HTTP_X_FORWARDED_FOR'] && $ipAddress!=$_SERVER['HTTP_X_FORWARDED_FOR']){
|
2704 |
+
if(strpos($proxylist,$_SERVER['HTTP_X_FORWARDED_FOR'])===false){
|
2705 |
+
$IPlist=$_SERVER['HTTP_X_FORWARDED_FOR'].",".$proxylist;
|
2706 |
+
$proxylist=$IPlist;
|
2707 |
+
}
|
2708 |
+
$ipAddress=$_SERVER['HTTP_X_FORWARDED_FOR'];
|
2709 |
+
}
|
2710 |
+
if(!empty($_SERVER["HTTP_X_FORWARDED"]) && $serverAddr!=$_SERVER["HTTP_X_FORWARDED"] && $ipAddress!=$_SERVER['HTTP_X_FORWARDED']){
|
2711 |
+
if(strpos($proxylist,$_SERVER['HTTP_X_FORWARDED'])===false){
|
2712 |
+
$IPlist=$_SERVER['HTTP_X_FORWARDED'].",".$proxylist;
|
2713 |
+
$proxylist=$IPlist;
|
2714 |
+
}
|
2715 |
+
$ipAddress=$_SERVER['HTTP_X_FORWARDED'];
|
2716 |
+
}
|
2717 |
+
//try get valid IP
|
2718 |
+
$IP = self::validIP($ipAddress);
|
2719 |
+
if(empty($IP) && $ipAddress!=$proxylist){
|
2720 |
+
$proxylist=preg_replace('/(^|[^0-9\.])'.preg_quote($ipAddress).'($|[^0-9\.])/','',$IPlist);
|
2721 |
+
$IP=self::validIP($proxylist);
|
2722 |
+
}
|
2723 |
+
if(!empty($IP)){
|
2724 |
+
$p=strpos($IPlist,$IP)+strlen($IP)+1;
|
2725 |
+
if($p < strlen($IPlist)) $proxylist=substr($IPlist,$p);
|
2726 |
+
else $proxylist="";
|
2727 |
+
}
|
2728 |
+
//check client hostname for known proxy gateways
|
2729 |
+
if(!empty($IP)){
|
2730 |
+
$hostname=self::get_hostname($IP);
|
2731 |
+
if(preg_match('/(cloudflare\.|cache|gateway|proxy|unknown$|localhost$|\.local(?:domain)?$)/',$hostname)>0){
|
2732 |
+
$ip1=$IP;
|
2733 |
+
if(!empty($proxylist)) $IP=self::validIP($proxylist);
|
2734 |
+
if(!empty($IP)){
|
2735 |
+
$p=strpos($IPlist,$IP)+strlen($IP)+1;
|
2736 |
+
if($p < strlen($IPlist)) $proxylist=substr($IPlist,$p);
|
2737 |
+
else $proxylist="";
|
2738 |
+
}else{
|
2739 |
+
$IP=$ip1;
|
2740 |
+
}
|
2741 |
+
}
|
2742 |
+
if(!empty($proxylist)) $proxy=self::validIP($proxylist);
|
2743 |
+
if(!empty($proxy)) $ipAddress=$proxy.','.$IP;
|
2744 |
+
else $ipAddress=$IP;
|
2745 |
+
}
|
2746 |
+
return $ipAddress;
|
2747 |
+
} //end get_clientAddr
|
2748 |
+
|
2749 |
+
/** lookup the hostname from an ip address via cache or via gethostbyaddr command @since v1.9 */
|
2750 |
+
static function get_hostname($IP=""){
|
2751 |
+
if(empty($IP)) $IP=self::clientIP($_SERVER['REMOTE_ADDR']);
|
2752 |
+
//first check for cached hostname
|
2753 |
+
$hostname=wassupDb::get_wassupmeta($IP,'hostname');
|
2754 |
+
if(empty($hostname)){
|
2755 |
+
if($IP=="127.0.0.1" || $IP=='::1' || $IP=='0:0:0:0:0:0:0:1'){
|
2756 |
+
$hostname="localhost";
|
2757 |
+
}elseif($IP=="0.0.0.0" || $IP=='::' || $IP=='0:0:0:0:0:0:0:0'){
|
2758 |
+
$hostname="unknown";
|
2759 |
+
}else{
|
2760 |
+
$hostname=@gethostbyaddr($IP);
|
2761 |
+
if(!empty($hostname) && $hostname!=$IP && $hostname!="localhost" && $hostname!="unknown"){
|
2762 |
+
$meta_key='hostname';
|
2763 |
+
$meta_value=$hostname;
|
2764 |
+
$expire=time()+48*3600; //cache for 2 days
|
2765 |
+
$cache_id=wassupDb::update_wassupmeta($IP,$meta_key,$meta_value,$expire);
|
2766 |
+
}
|
2767 |
+
}
|
2768 |
+
}
|
2769 |
+
return $hostname;
|
2770 |
+
} //end get_hostname
|
2771 |
+
} //end Class
|
2772 |
+
} //end if !class_exists
|
2773 |
?>
|
lib/wassupadmin.php
CHANGED
@@ -130,10 +130,8 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
130 |
if(empty($URLQuery) && preg_match('/[^\?]+\?([A-Za-z\-_]+.*)/',html_entity_decode($_SERVER['REQUEST_URI']),$pcs)>0) $URLQuery=$pcs[1];
|
131 |
if(!empty($URLQuery)){
|
132 |
$refresh_loc='location.href="?'.wassupURI::cleanURL($URLQuery).'"';
|
133 |
-
//remove "delete","search", and "chart" query parameters from url for auto-refresh @since v1.9
|
134 |
if(isset($_GET['deleteMARKED']) || isset($_GET['chart']) || isset($_GET['dip']) || isset($_GET['mark']) || isset($_GET['search-submit'])){
|
135 |
$remove_args=array('deleteMARKED','dip','chart','mark','submit-search');
|
136 |
-
//$newQuery=preg_replace(array('/&deleteMARKED=[^&]+/','/&dip=[^&]+/','/&chart=[^&]+/','/&mark=[^&]+/','/&submit\-search=[^&]+/'),"",$URLQuery);
|
137 |
$newURL=remove_query_arg($remove_args);
|
138 |
if(!empty($newURL) && $newURL != $_SERVER['REQUEST_URI']){
|
139 |
$refresh_loc='location.href="'.wassupURI::cleanURL($newURL).'"';
|
@@ -150,19 +148,8 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
150 |
<script type='text/javascript'>
|
151 |
//<![CDATA[
|
152 |
var paused=" *<?php _e('paused','wassup'); ?>* ";
|
153 |
-
|
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 |
-
//check 'wrefresh' value after 'wassupReload' is defined @since v1.9.2
|
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
|
164 |
-
} //end if $wrefresh > 0
|
165 |
-
?>
|
166 |
jQuery(document).ready(function($){
|
167 |
$("a.showhide").click(function(){var id=$(this).attr('id');$("div.navi"+id).toggle("slow");return false;});
|
168 |
$("a.toggleagent").click(function(){var id=$(this).attr('id');$("div.naviagent"+id).slideToggle("slow");return false;});
|
@@ -255,7 +242,7 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
255 |
<script type="text/javascript">
|
256 |
//<![CDATA[
|
257 |
function wSelfRefresh(){location.reload(true)}
|
258 |
-
var
|
259 |
jQuery(document).ready(function($){
|
260 |
$("a.showhide").click(function(){var id=$(this).attr('id');$("div.navi"+id).toggle("slow");return false;});
|
261 |
$("a.toggle-all").toggle(function(){
|
@@ -267,16 +254,96 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
267 |
//]]>
|
268 |
</script><?php
|
269 |
echo "\n";
|
270 |
-
}elseif($wassuppage
|
271 |
?>
|
272 |
<script type="text/javascript">
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
</script><?php
|
281 |
echo "\n";
|
282 |
}elseif($wassuppage=="wassup-spia" || $wassuppage=="wassup-spy"){
|
@@ -284,8 +351,7 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
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
|
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
|
291 |
//add 'action_param' query params to ajaxurl
|
@@ -310,10 +376,12 @@ jQuery(document).ready(function($){
|
|
310 |
$('#spy-pause').click(function(){
|
311 |
$(this).css("background-color","#ebb");$("#spy-play").css("background-color","#eae9e9");<?php
|
312 |
if(!empty($wassup_user_settings['spy_map']) || !empty($_GET['map'])) echo '$("div#spia_map").css({"opacity":"0.7","background":"none"});';?>
|
|
|
313 |
});
|
314 |
$('#spy-play').click(function(){
|
315 |
$(this).css("background-color","#cdc");$("#spy-pause").css("background-color","#eae9e9");<?php
|
316 |
if(!empty($wassup_user_settings['spy_map']) || !empty($_GET['map'])) echo '$("div#spia_map").css("opacity","1");';?>
|
|
|
317 |
});
|
318 |
});
|
319 |
<?php
|
@@ -357,27 +425,29 @@ function showMarkerinfo(mmap,mlat,mlon,marker,markerwin){
|
|
357 |
* -assign an admin body class (wassup, wassup-wp-legacy) for wassup page styling
|
358 |
*/
|
359 |
function wassup_add_css() {
|
360 |
-
global $wassup_options;
|
361 |
//jqueryui-css and thickbox.css to wassup pages
|
362 |
$wassuppage=wassupURI::get_menu_arg();
|
363 |
if(!empty($wassuppage) && strpos($wassuppage,'wassup')!==FALSE){
|
364 |
//TODO: Add a WassUp favicon to wassup pages
|
365 |
//output the stylesheet links
|
366 |
//always use Wassup's jquery-ui.css in Wassup-options
|
367 |
-
if($wassuppage=="wassup-options"){
|
368 |
-
<link href="<?php echo WASSUPURL;?>/css/jquery-ui/jquery.ui.theme.css" rel="stylesheet" type="text/css" />
|
369 |
-
<link href="<?php echo WASSUPURL;?>/css/jquery-ui/jquery.ui.tabs.css" rel="stylesheet" type="text/css" /><?php
|
370 |
echo "\n";
|
|
|
|
|
|
|
|
|
|
|
371 |
}
|
372 |
//always use Wassup's thickbox.css in Wassup panels
|
373 |
if($wassuppage=="wassup" || $wassuppage=="wassup-online"){?>
|
374 |
<link rel="stylesheet" href="<?php echo WASSUPURL.'/js/thickbox/thickbox.css';?>" type="text/css" /><?php
|
375 |
echo "\n";
|
376 |
}
|
377 |
-
// Override some Wordpress css and Wassup default css settings on Wassup pages
|
378 |
?>
|
379 |
<style type="text/css">
|
380 |
-
#ozh_menu_wrap{margin-top:-3px !important;} /* ozh drop-down plugin */
|
381 |
#contextual-help-link{display:none;}
|
382 |
.update-nag{display:none;} /* nag messes up tab menus, so hide it */
|
383 |
</style>
|
@@ -488,7 +558,7 @@ function wassup_plugin_links($links, $file){
|
|
488 |
* Add a horizontal navigation (tab) menu to Wassup pages.
|
489 |
* - automatically adds tab links for each submenu in Wassup's main menu when available (admin users only)
|
490 |
* - adds tab links to Wassup-stats dashboard submenu using the 'ml' query parameter
|
491 |
-
* - appends a "Donate" tab to menu
|
492 |
* @author helened
|
493 |
* @since v1.9
|
494 |
*/
|
@@ -520,25 +590,44 @@ function wassup_menu_links($selected=""){
|
|
520 |
$menu_class=" current";
|
521 |
}
|
522 |
if(current_user_can($menu_access)){
|
523 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
524 |
echo "\n";?>
|
525 |
-
<li class="wassup-menu-link<?php echo $menu_class;?>"><a href="<?php echo wassupURI::get_admin_url('admin.php?page='.$menu_page);?>"><?php echo $menu_name;?></a></li><?php
|
526 |
}
|
527 |
}//end for
|
|
|
|
|
528 |
$donate_link_url="";
|
529 |
if(is_multisite() && is_network_admin()){
|
530 |
$donate_link_url=network_admin_url('admin.php?page=wassup-options&tab=donate');
|
531 |
}elseif(current_user_can('manage_options')){
|
532 |
$donate_link_url=admin_url('admin.php?page=wassup-options&tab=donate');
|
533 |
}
|
534 |
-
wassup_donate_link($donate_link_url)
|
535 |
}else{
|
536 |
if (($selected=="wassup-stats" || $selected=="wassup") && !empty($_GET['ml'])) $selected=$_GET['ml'];
|
537 |
echo "\n";?>
|
538 |
-
<li class="wassup-menu-link<?php if($selected=='wassup-online') echo ' current';?>"><a href="<?php echo wassupURI::get_admin_url('index.php?page=wassup-stats&ml=wassup-online');?>"><?php _e('Current Visitors Online','wassup');?></a></li>
|
539 |
-
<li class="wassup-menu-link<?php if($selected=='wassup-spia' || $selected=='wassup-spy') echo ' current';?>"><a href="<?php echo wassupURI::get_admin_url('index.php?page=wassup-stats&ml=wassup-spia');?>"><?php _e('SPY Visitors','wassup');?></a></li>
|
540 |
-
<li class="wassup-menu-link<?php if($selected=='wassup' || $selected==$wassupfolder || $selected=='wassup-stats') echo ' current';?>"><a href="<?php echo wassupURI::get_admin_url('index.php?page=wassup-stats');?>"><?php _e('Visitor Details','wassup');?></a></li><?php
|
541 |
-
|
|
|
542 |
} //end if submenu
|
543 |
echo "\n";?>
|
544 |
</ul><div style="clear:right;"></div>
|
@@ -547,9 +636,7 @@ function wassup_menu_links($selected=""){
|
|
547 |
|
548 |
function wassup_donate_link($link_url=""){
|
549 |
global $wdebug_mode;
|
550 |
-
//
|
551 |
-
echo "\n";?>
|
552 |
-
<li id="donate-link" class="wassup-menu-link"><?php
|
553 |
if(!empty($link_url) && strpos($link_url,'//')!==false){
|
554 |
echo '<a href="'.$link_url.'"><img src="'.WASSUPURL.'/img/donate-button-sm.png" alt="'.__("Donate","wassup").'"/></a>';
|
555 |
}else{
|
@@ -569,7 +656,7 @@ function wassup_donate_link($link_url=""){
|
|
569 |
echo "\n";?>
|
570 |
</form>
|
571 |
<?php
|
572 |
-
}
|
573 |
} //end wassup_donate_link
|
574 |
|
575 |
/**
|
@@ -600,6 +687,7 @@ function WassUp() {
|
|
600 |
if(!is_object($current_user) || empty($current_user->ID)) wp_get_current_user();
|
601 |
$wassup_user_settings = get_user_option('_wassup_settings',$current_user->ID);
|
602 |
$tab=0;
|
|
|
603 |
$admin_message="";
|
604 |
$wassup_table = $wassup_options->wassup_table;
|
605 |
$network_settings=array();
|
@@ -622,8 +710,8 @@ function WassUp() {
|
|
622 |
// RUN THE DELETE/SAVE/RESET FORM OPTIONS
|
623 |
// Processed here so that any resulting "admin_message" or errors will display with page
|
624 |
//DELETE NOW options...
|
625 |
-
if(!empty($_POST) && ($wassuppage== "wassup-options" || $wassuppage == "wassup" || $wassuppage=="wassup-stats")){
|
626 |
-
if($wassuppage=="wassup-options"){
|
627 |
//check user capability and verify admin referer/wp nonce before processing form changes and delete requests @since v1.9
|
628 |
if(current_user_can('manage_options') && wassupURI::is_valid_admin_referer('wassupsettings-'.$current_user->ID)){
|
629 |
//workaround code for Google Chrome's empty 'onclick=submit()' "delete NOW" value @since v1.9
|
@@ -775,6 +863,10 @@ function WassUp() {
|
|
775 |
$admin_message = __("Wassup options reset successfully","wassup")."." ;
|
776 |
$wassup_user_settings=$wassup_options->resetUserSettings();
|
777 |
if($wassup_options->is_recording_active()) wassup_cron_startup(); //restart wp-cron
|
|
|
|
|
|
|
|
|
778 |
}
|
779 |
}
|
780 |
} //end if !delete_now
|
@@ -888,10 +980,14 @@ function WassUp() {
|
|
888 |
}elseif ($wassuppage == "wassup-spia" || $wassuppage == "wassup-spy"){?>
|
889 |
<h2>WassUp - <?php _e("SPY Visitors", "wassup"); ?></h2><?php
|
890 |
wassup_page_contents(array('wassuppage'=>$wassuppage,'tab'=>$tab));
|
891 |
-
}elseif ($wassuppage
|
892 |
<h2>WassUp - <?php _e('Options','wassup'); ?></h2><?php
|
893 |
if (!function_exists('wassup_optionsView')) include_once(WASSUPDIR.'/lib/settings.php');
|
894 |
wassup_optionsView($tab);
|
|
|
|
|
|
|
|
|
895 |
}else{
|
896 |
return;
|
897 |
}
|
@@ -904,6 +1000,16 @@ function WassUp() {
|
|
904 |
<nobr><span class="separator">|</span> <?php echo __('Exec time','wassup').": $totaltime"; ?></nobr>
|
905 |
</small></p>
|
906 |
</div> <!-- end wassup-wrap --><?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
907 |
} //end WassUp
|
908 |
|
909 |
/**
|
@@ -1024,7 +1130,7 @@ function wassup_page_contents($args=array()){
|
|
1024 |
if ($currenttot > 0) {
|
1025 |
$currentlogged = $TotOnline->calc_tot("count",null,"AND `username`!=''","DISTINCT");
|
1026 |
$currentauth = $TotOnline->calc_tot("count",null,"AND `comment_author`!='' AND `username`=''","DISTINCT");
|
1027 |
-
$sql=sprintf("SELECT SQL_NO_CACHE `id`, wassup_id, count(wassup_id) as numurl, max(`timestamp`) as max_timestamp, `ip`, `hostname`, `searchengine`, `search`, `searchpage`, `urlrequested`, `referrer`, `agent`, `browser`, `spider`, `feed`, `os`, `screen_res`, GROUP_CONCAT(DISTINCT `username` ORDER BY `username` SEPARATOR '
|
1028 |
$qryC=$wpdb->get_results($sql);
|
1029 |
if(!empty($qryC) && is_wp_error($qryC)){
|
1030 |
$errno=$qryC->get_error_code();
|
@@ -1070,19 +1176,17 @@ function wassup_page_contents($args=array()){
|
|
1070 |
$Ousername="";
|
1071 |
$ulclass="users";
|
1072 |
$unclass="";
|
|
|
1073 |
// User is logged in or is a comment's author
|
1074 |
if($cv->login_name != "" || $cv->comment_author !=""){
|
1075 |
$utype="";
|
1076 |
-
$logged_user=
|
1077 |
-
if($
|
1078 |
-
$logged_user
|
1079 |
-
|
1080 |
-
$loginnames=explode(',',$logged_user);
|
1081 |
foreach($loginnames AS $name){
|
1082 |
$logged_user=trim($name);
|
1083 |
-
|
1084 |
-
break;
|
1085 |
-
}
|
1086 |
}
|
1087 |
}
|
1088 |
$utype=__("LOGGED IN USER","wassup");
|
@@ -1100,7 +1204,7 @@ function wassup_page_contents($args=array()){
|
|
1100 |
$Ousername='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($logged_user).'</strong></span></li>';
|
1101 |
}
|
1102 |
}else{
|
1103 |
-
$Ousername='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($
|
1104 |
}
|
1105 |
$unclass="sum-box-log";
|
1106 |
}
|
@@ -1112,6 +1216,7 @@ function wassup_page_contents($args=array()){
|
|
1112 |
}
|
1113 |
if(!empty($cv->spider)) $unclass="sum-box-spider";
|
1114 |
if(!empty($cv->malware_type)) $unclass="sum-box-spam";
|
|
|
1115 |
echo "\n";?>
|
1116 |
<div class="sum-rec"><?php
|
1117 |
// Visitor Record - raw data (hidden)
|
@@ -1396,54 +1501,7 @@ function wassup_page_contents($args=array()){
|
|
1396 |
$wwhereis .=" AND `ip`='$wip'";
|
1397 |
}
|
1398 |
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
1399 |
-
|
1400 |
-
echo "<!--heartbeat-->\n";
|
1401 |
-
// Instantiate class to count items
|
1402 |
-
$wTot = New WassupItems($wassup_table,$from_date,$to_date,$wwhereis,$wlimit);
|
1403 |
-
$wTot->WpUrl=$wpurl;
|
1404 |
-
$witemstot=0;
|
1405 |
-
$wpagestot=0;
|
1406 |
-
$wspamtot=0;
|
1407 |
-
$markedtot=0;
|
1408 |
-
$searchtot=0;
|
1409 |
-
$wmain=array();
|
1410 |
-
$ipsearch="";
|
1411 |
-
//don't apply "search" for marked ip (in whereis)
|
1412 |
-
if(!empty($wsearch) && $wsearch==$wip){
|
1413 |
-
$ipsearch=$wsearch;
|
1414 |
-
$wsearch="";
|
1415 |
-
}
|
1416 |
-
echo "\n<!--heartbeat-->";
|
1417 |
-
// MAIN QUERY
|
1418 |
-
if(!empty($wTot->totrecords)){
|
1419 |
-
$wmain=$wTot->calc_tot("main",$wsearch);
|
1420 |
-
echo "\n<!--heartbeat-->";
|
1421 |
-
$witemstot=$wTot->calc_tot("count",$wsearch,null,"DISTINCT");
|
1422 |
-
echo "\n<!--heartbeat-->";
|
1423 |
-
if(!empty($wsearch))$wpagestot=$wTot->calc_tot("count",$wsearch);
|
1424 |
-
else $wpagestot=(int)$wTot->totrecords;
|
1425 |
-
echo "\n<!--heartbeat-->";
|
1426 |
-
$wspamtot=$wTot->calc_tot("count",$wsearch,"AND `spam`>'0'");
|
1427 |
-
// Check if some records were marked
|
1428 |
-
if (!empty($wip)){
|
1429 |
-
if (empty($ipsearch)){
|
1430 |
-
echo "\n<!--heartbeat-->";
|
1431 |
-
$markedtot=$wTot->calc_tot("count",$wsearch," AND `ip`='".$wip."'","DISTINCT");
|
1432 |
-
}else{
|
1433 |
-
//avoid redundant calculations when search and mark/wip are the same
|
1434 |
-
$markedtot=$witemstot;
|
1435 |
-
}
|
1436 |
-
}
|
1437 |
-
// Check if some records were searched
|
1438 |
-
if(!empty($wsearch)) {
|
1439 |
-
//searchtot is the same query as witemstot above and shouldn't be re-calculated (visitor detail fix)
|
1440 |
-
//$searchtot=$wTot->calc_tot("count",$wsearch,null,"DISTINCT");
|
1441 |
-
$searchtot=$witemstot;
|
1442 |
-
}elseif(!empty($ipsearch)){
|
1443 |
-
$searchtot=$markedtot;
|
1444 |
-
}
|
1445 |
-
}
|
1446 |
-
if(!empty($ipsearch)) $wsearch=$ipsearch;
|
1447 |
//Clear non-sticky filter parameters from URL before applying new filters
|
1448 |
$URLQuery=trim(html_entity_decode($_SERVER['QUERY_STRING']));
|
1449 |
//'remove_query_arg' function replaces "preg_replace" to remove args from query string @since v1.9.1
|
@@ -1491,6 +1549,50 @@ function wassup_page_contents($args=array()){
|
|
1491 |
</td></tr>
|
1492 |
</tbody></table>
|
1493 |
</form><?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1494 |
// Print Site Usage summary
|
1495 |
echo "\n";?>
|
1496 |
<div class='centered'>
|
@@ -1498,7 +1600,7 @@ function wassup_page_contents($args=array()){
|
|
1498 |
<ul><li><span style="border-bottom:2px solid #0077CC;"><?php echo (int)$witemstot;?></span> <?php _e('Visits','wassup');?></li>
|
1499 |
<li><span style="border-bottom:2px dashed #FF6D06;"><?php echo (int)$wpagestot;?></span> <?php _e('Pageviews','wassup');?></li>
|
1500 |
<li><span><?php echo @number_format(($wpagestot/$witemstot),2);?></span> <?php _e('Pages/Visits','wassup');?></li>
|
1501 |
-
<li><span class="spamtoggle"><?php
|
1502 |
//add spam form overlay when spamcheck is enabled and user is admin or can 'manage_options'
|
1503 |
$hidden_spam_form=false;
|
1504 |
if($wassup_options->wassup_spamcheck == 1 && ($wassup_options->is_admin_login() || current_user_can('manage_options'))){
|
@@ -1513,7 +1615,7 @@ function wassup_page_contents($args=array()){
|
|
1513 |
}
|
1514 |
echo '%)</span>';
|
1515 |
if($hidden_spam_form) echo '</a>';
|
1516 |
-
echo '</span> '.__('Spams','wassup');?></li>
|
1517 |
</ul><br/>
|
1518 |
<div id="chart_placeholder" class="placeholder" align="center"></div>
|
1519 |
</div>
|
@@ -1534,7 +1636,7 @@ function wassup_page_contents($args=array()){
|
|
1534 |
<p class="indent-opt"><input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_options->wassup_refspam==1) echo $checked;?>/> <?php _e('Record referrer spam attempts','wassup');?></p>
|
1535 |
<p class="indent-opt"><input type="checkbox" name="wassup_attack" value="1" <?php if($wassup_options->wassup_attack==1) echo $checked;?>/> <?php _e("Record attack/exploit attempts (libwww-perl agent)","wassup");?></p>
|
1536 |
<p class="indent-opt"><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");?></p>
|
1537 |
-
<p><input type="submit" name="submit-spam" value="<?php _e('Save Settings','wassup'); ?>" /></p>
|
1538 |
</form>
|
1539 |
</div> <!-- /hiddenspam --><?php
|
1540 |
}
|
@@ -1553,6 +1655,12 @@ function wassup_page_contents($args=array()){
|
|
1553 |
<a href="?<?php echo esc_attr($URLQuery.'&chart=1');?>" class="icon"><img src="<?php echo WASSUPURL.'/img/chart_add.png" alt="'.__('show chart','wassup').'" title="'.__('Show the chart','wassup'); ?>"/></a><a href="?<?php echo esc_attr($URLQuery.'&chart=1');?>"><?php _e("Show chart","wassup");?></a><?php
|
1554 |
}?> <span class="separator">|</span>
|
1555 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
1556 |
$wdformat = get_option("date_format");
|
1557 |
if(($to_date - $from_date)>24*3600){
|
1558 |
$stats_range=gmdate("$wdformat",$from_date)." - ".gmdate("$wdformat",$to_date);
|
@@ -1625,27 +1733,23 @@ function wassup_page_contents($args=array()){
|
|
1625 |
<div id="pag" align="center"><?php $p->show();?></div><?php
|
1626 |
}
|
1627 |
//# Detailed List of Wassup Records...
|
|
|
|
|
1628 |
$error_msg="";
|
1629 |
$data_error="";
|
1630 |
if($witemstot>0 && is_array($wmain) && count($wmain)>0){
|
1631 |
$rkcount=0;
|
1632 |
foreach($wmain as $rk){
|
1633 |
//monitor for script timeout limit and extend, if needed @since v1.9
|
1634 |
-
|
1635 |
-
|
1636 |
-
if($
|
1637 |
-
else $percen=($rkcount/$witems)*100;
|
1638 |
-
if($rkcount>0 && $percen >80 && $stimeout >=180 && $can_set_timelimit){
|
1639 |
-
@set_time_limit($stimeout);
|
1640 |
-
$stimer_start=time();
|
1641 |
-
}elseif($rkcount>0){
|
1642 |
//report is hung, so terminate here
|
1643 |
$data_error=__("Records display interrupted.","wassup")." - script timeout/partial data.";
|
1644 |
-
break;
|
1645 |
}else{ //no data, database problem
|
1646 |
$data_error=__("Unable to display records.","wassup")." - script timeout/no data.";
|
1647 |
-
break;
|
1648 |
}
|
|
|
1649 |
}
|
1650 |
$rkcount++;
|
1651 |
$dateF = gmdate("d M Y", $rk->max_timestamp);
|
@@ -1664,11 +1768,13 @@ function wassup_page_contents($args=array()){
|
|
1664 |
$ulclass="users";
|
1665 |
$Ouser="";
|
1666 |
$Ospider="";
|
|
|
|
|
1667 |
//for logged-in user/administrator in ul list
|
1668 |
-
|
1669 |
-
|
1670 |
-
if(strpos($logged_user,'
|
1671 |
-
$loginnames=explode('
|
1672 |
foreach($loginnames AS $name){
|
1673 |
$logged_user=trim($name);
|
1674 |
if(!empty($logged_user)){
|
@@ -1691,7 +1797,7 @@ function wassup_page_contents($args=array()){
|
|
1691 |
if($show_avatars) $Ouser='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.get_avatar($udata->ID,'20').' '.esc_attr($logged_user).'</strong></span></li>';
|
1692 |
else $Ouser='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($logged_user).'</strong></span></li>';
|
1693 |
}else{
|
1694 |
-
$Ouser='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($
|
1695 |
}
|
1696 |
$unclass="sum-box-log";
|
1697 |
if($wdebug_mode){
|
@@ -1723,6 +1829,7 @@ function wassup_page_contents($args=array()){
|
|
1723 |
if(!empty($rk->malware_type)){
|
1724 |
$unclass="sum-box-spam";
|
1725 |
}
|
|
|
1726 |
echo "\n";?>
|
1727 |
<div id="delID<?php echo esc_attr($rk->wassup_id);?>" class="sum-rec <?php if($wassup_user_settings['umark']==1 && $wassup_user_settings['uip']==$ip) echo 'sum-mark';?>"> <?php
|
1728 |
// Visitor Record - raw data (hidden)
|
@@ -1930,6 +2037,7 @@ function wassup_page_contents($args=array()){
|
|
1930 |
if (!empty($wassup_user_settings['detail_chart']) || (!empty($_GET['chart']) && "1" == $_GET['chart'])) {
|
1931 |
$chart_type = (!empty($wassup_options->wassup_chart_type))? $wassup_options->wassup_chart_type: "2";
|
1932 |
//show Google!Charts image
|
|
|
1933 |
if ($wpagestot > 12) {
|
1934 |
//extend script timeout for chart
|
1935 |
if($can_set_timelimit && (time()-$stimer_start)>$stimeout-30){
|
@@ -1938,8 +2046,6 @@ function wassup_page_contents($args=array()){
|
|
1938 |
}
|
1939 |
$chart_url=$wTot->TheChart($wlast,$res,"180",$wsearch,$chart_type,"bg,s,e9e9ea|c,lg,90,deeeff,0,e9e9ea,0.8","page",$wtype);
|
1940 |
$html='<img src="'.$chart_url.'" alt="'.__("Graph of visitor hits","wassup").'" class="chart" width="'.$res.'" />';
|
1941 |
-
} else {
|
1942 |
-
$html='<p style="padding-top:10px;">'.__("Too few records to print chart","wassup").'...</p>';
|
1943 |
}
|
1944 |
} else {
|
1945 |
$html='<p style="padding-top:10px"> </p>';
|
130 |
if(empty($URLQuery) && preg_match('/[^\?]+\?([A-Za-z\-_]+.*)/',html_entity_decode($_SERVER['REQUEST_URI']),$pcs)>0) $URLQuery=$pcs[1];
|
131 |
if(!empty($URLQuery)){
|
132 |
$refresh_loc='location.href="?'.wassupURI::cleanURL($URLQuery).'"';
|
|
|
133 |
if(isset($_GET['deleteMARKED']) || isset($_GET['chart']) || isset($_GET['dip']) || isset($_GET['mark']) || isset($_GET['search-submit'])){
|
134 |
$remove_args=array('deleteMARKED','dip','chart','mark','submit-search');
|
|
|
135 |
$newURL=remove_query_arg($remove_args);
|
136 |
if(!empty($newURL) && $newURL != $_SERVER['REQUEST_URI']){
|
137 |
$refresh_loc='location.href="'.wassupURI::cleanURL($newURL).'"';
|
148 |
<script type='text/javascript'>
|
149 |
//<![CDATA[
|
150 |
var paused=" *<?php _e('paused','wassup'); ?>* ";
|
151 |
+
function wassupReload<?php echo $wnonce;?>(wassuploc){if(wassuploc!=="") location.href=wassuploc;else location.reload(true);}
|
|
|
152 |
function wSelfRefresh(){<?php echo $refresh_loc;?>}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
jQuery(document).ready(function($){
|
154 |
$("a.showhide").click(function(){var id=$(this).attr('id');$("div.navi"+id).toggle("slow");return false;});
|
155 |
$("a.toggleagent").click(function(){var id=$(this).attr('id');$("div.naviagent"+id).slideToggle("slow");return false;});
|
242 |
<script type="text/javascript">
|
243 |
//<![CDATA[
|
244 |
function wSelfRefresh(){location.reload(true)}
|
245 |
+
var refreshID=setTimeout('wSelfRefresh()',<?php echo ($wrefresh*60000)+2000;?>);
|
246 |
jQuery(document).ready(function($){
|
247 |
$("a.showhide").click(function(){var id=$(this).attr('id');$("div.navi"+id).toggle("slow");return false;});
|
248 |
$("a.toggle-all").toggle(function(){
|
254 |
//]]>
|
255 |
</script><?php
|
256 |
echo "\n";
|
257 |
+
}elseif($wassuppage=="wassup-options" || $wassuppage=="wassup-donate"){
|
258 |
?>
|
259 |
<script type="text/javascript">
|
260 |
+
//<![CDATA[
|
261 |
+
<?php
|
262 |
+
//New in v1.9.4: ajax script to check download status of dynamically generated export file
|
263 |
+
?>
|
264 |
+
var exportID="";
|
265 |
+
var exportTimerCount=0;
|
266 |
+
var exportTimerID=0;
|
267 |
+
function checkExportstatus(msgID){
|
268 |
+
if(exportID == "") exportID=msgID;
|
269 |
+
exportTimerCount +=1;
|
270 |
+
jQuery(function($){
|
271 |
+
if(exportTimerCount >30){ //stop timer after 1 min
|
272 |
+
var msg="<?php echo __('timed out!','wassup');?>";
|
273 |
+
$("#wassup-dialog >p").append(msg);
|
274 |
+
stopExportTimer();
|
275 |
+
}
|
276 |
+
var request = $.ajax({
|
277 |
+
url: ajaxurl,
|
278 |
+
method: "POST",
|
279 |
+
dataType: "html",
|
280 |
+
data: {'type':"exportmessage",'mid':exportID,<?php
|
281 |
+
//format 'action_param' for ajax post data
|
282 |
+
$postparams="";
|
283 |
+
foreach($action_param AS $key => $value){
|
284 |
+
if(preg_match('/[0-9a-z\-_ ]/i',$key)>0) {
|
285 |
+
$postparams .= "'".$key."':'".preg_replace('/\'/','\\\'',esc_attr($value))."',";
|
286 |
+
}
|
287 |
+
}
|
288 |
+
echo $postparams;?>},
|
289 |
+
});
|
290 |
+
request.done(function(msg){
|
291 |
+
if(msg == ""){
|
292 |
+
$("#wassup-dialog >p").append("..");
|
293 |
+
}else{
|
294 |
+
$("#wassup-dialog >p").html(msg);
|
295 |
+
exportTimerCount=0;
|
296 |
+
stopExportTimer();
|
297 |
+
}
|
298 |
+
});
|
299 |
+
});
|
300 |
+
}
|
301 |
+
function startExportTimer(msgID){
|
302 |
+
exportTimerID=setInterval("checkExportstatus()",2000,msgID);
|
303 |
+
exportTimerCount=0;
|
304 |
+
jQuery(function($){
|
305 |
+
$("#wassup-overlay").addClass("ui-widget-overlay");
|
306 |
+
$("#wassup-dialog >p").html("<?php echo __('Retrieving data for export. Download will start soon. Please wait.','wassup');?> ");
|
307 |
+
$("#wassup-dialog").dialog("open");
|
308 |
+
$("#wassup-dialog").on("dialogclose",function(event,ui){
|
309 |
+
stopExportTimer();
|
310 |
+
});
|
311 |
+
});
|
312 |
+
}
|
313 |
+
function stopExportTimer(){
|
314 |
+
if(exportTimerID >0) clearInterval(exportTimerID);
|
315 |
+
if(exportTimerCount==0) exportTimerID=0;
|
316 |
+
jQuery(function($){
|
317 |
+
$("#wassup-overlay").removeClass("ui-widget-overlay");
|
318 |
+
});
|
319 |
+
}
|
320 |
+
jQuery(document).ready(function($) {
|
321 |
+
//initialize tabs
|
322 |
+
var tabs=$('#tabcontainer').tabs();
|
323 |
+
$('.submit-opt').click(function(){$(this).css("background-color","#d71");});
|
324 |
+
$('.default-opt').click(function(){$(this).css("background-color","#d71");});
|
325 |
+
$("a#BCdonate").toggle(function(){$('div#bc_placeholder').slideDown("slow");},function(){$('div#bc_placeholder').slideUp("slow");return false;});
|
326 |
+
<?php
|
327 |
+
//new in v1.9.4: dialog and javascripts for export action
|
328 |
+
?>
|
329 |
+
$('#wassup-dialog').dialog({
|
330 |
+
modal:true,
|
331 |
+
autoOpen:false,
|
332 |
+
draggable:false,
|
333 |
+
resizable:false,
|
334 |
+
});
|
335 |
+
$(".export-link").click(function(e){
|
336 |
+
e.preventDefault();
|
337 |
+
e.returnValue=false;
|
338 |
+
//only 1 instance of "export" allowed at a time
|
339 |
+
if(exportTimerID==0){
|
340 |
+
exportID=$(this).attr('id');
|
341 |
+
startExportTimer(exportID);
|
342 |
+
location.href=$(this).attr('href');
|
343 |
+
}
|
344 |
+
});
|
345 |
+
});
|
346 |
+
//]]>
|
347 |
</script><?php
|
348 |
echo "\n";
|
349 |
}elseif($wassuppage=="wassup-spia" || $wassuppage=="wassup-spy"){
|
351 |
//google!Maps map init and marker javascripts in document head @since v1.9
|
352 |
if($wassup_user_settings['spy_map']== 1 || !empty($_GET['map'])){
|
353 |
//check for api key for Google!maps
|
354 |
+
$apikey=$wassup_options->get_apikey();
|
|
|
355 |
echo '<script src="https://maps.googleapis.com/maps/api/js?key='.esc_attr($apikey).'" type="text/javascript"></script>';
|
356 |
} //end if spy_map
|
357 |
//add 'action_param' query params to ajaxurl
|
376 |
$('#spy-pause').click(function(){
|
377 |
$(this).css("background-color","#ebb");$("#spy-play").css("background-color","#eae9e9");<?php
|
378 |
if(!empty($wassup_user_settings['spy_map']) || !empty($_GET['map'])) echo '$("div#spia_map").css({"opacity":"0.7","background":"none"});';?>
|
379 |
+
if(spyRunning==1) spyRunning=0;
|
380 |
});
|
381 |
$('#spy-play').click(function(){
|
382 |
$(this).css("background-color","#cdc");$("#spy-pause").css("background-color","#eae9e9");<?php
|
383 |
if(!empty($wassup_user_settings['spy_map']) || !empty($_GET['map'])) echo '$("div#spia_map").css("opacity","1");';?>
|
384 |
+
if(spyRunning==0) spyRunning=1;
|
385 |
});
|
386 |
});
|
387 |
<?php
|
425 |
* -assign an admin body class (wassup, wassup-wp-legacy) for wassup page styling
|
426 |
*/
|
427 |
function wassup_add_css() {
|
428 |
+
global $wassup_options,$wdebug_mode;
|
429 |
//jqueryui-css and thickbox.css to wassup pages
|
430 |
$wassuppage=wassupURI::get_menu_arg();
|
431 |
if(!empty($wassuppage) && strpos($wassuppage,'wassup')!==FALSE){
|
432 |
//TODO: Add a WassUp favicon to wassup pages
|
433 |
//output the stylesheet links
|
434 |
//always use Wassup's jquery-ui.css in Wassup-options
|
435 |
+
if($wassuppage=="wassup-options"){
|
|
|
|
|
436 |
echo "\n";
|
437 |
+
if(!$wdebug_mode){
|
438 |
+
echo '<link href="'.WASSUPURL.'/css/jquery-ui/jquery-ui.min.css" rel="stylesheet" type="text/css" />'."\n";
|
439 |
+
}else{
|
440 |
+
echo '<link href="'.WASSUPURL.'/css/jquery-ui/jquery-ui.css" rel="stylesheet" type="text/css" />'."\n";
|
441 |
+
}
|
442 |
}
|
443 |
//always use Wassup's thickbox.css in Wassup panels
|
444 |
if($wassuppage=="wassup" || $wassuppage=="wassup-online"){?>
|
445 |
<link rel="stylesheet" href="<?php echo WASSUPURL.'/js/thickbox/thickbox.css';?>" type="text/css" /><?php
|
446 |
echo "\n";
|
447 |
}
|
448 |
+
// Override some Wordpress css and Wassup default css settings on Wassup pages
|
449 |
?>
|
450 |
<style type="text/css">
|
|
|
451 |
#contextual-help-link{display:none;}
|
452 |
.update-nag{display:none;} /* nag messes up tab menus, so hide it */
|
453 |
</style>
|
558 |
* Add a horizontal navigation (tab) menu to Wassup pages.
|
559 |
* - automatically adds tab links for each submenu in Wassup's main menu when available (admin users only)
|
560 |
* - adds tab links to Wassup-stats dashboard submenu using the 'ml' query parameter
|
561 |
+
* - appends a "Donate" and "FAQ" tab to menu
|
562 |
* @author helened
|
563 |
* @since v1.9
|
564 |
*/
|
590 |
$menu_class=" current";
|
591 |
}
|
592 |
if(current_user_can($menu_access)){
|
593 |
+
//add extra tab for faq next-to options
|
594 |
+
if($menu_page=="wassup-options"){
|
595 |
+
$menu_class="";
|
596 |
+
if($selected == "wassup-faq"){
|
597 |
+
$menu_class=" current";
|
598 |
+
}
|
599 |
+
$menu_name ="FAQ";
|
600 |
+
echo "\n";?>
|
601 |
+
<li id="faq-link" class="wassup-menu-link<?php echo $menu_class;?>"><a href="<?php echo wassupURI::get_admin_url('admin.php?page='.$menu_page.'&ml=wassup-faq');?>"><?php echo $menu_name;?></a></li><?php
|
602 |
+
$menu_class="";
|
603 |
+
if($selected =="wassup-options"){
|
604 |
+
$menu_class=" current";
|
605 |
+
}
|
606 |
+
$menu_name="Options";
|
607 |
+
}elseif($menu_page=="wassup-online"){
|
608 |
+
$menu_name =__("Current Visitors Online","wassup");
|
609 |
+
}
|
610 |
echo "\n";?>
|
611 |
+
<li id="options-link" class="wassup-menu-link<?php echo $menu_class;?>"><a href="<?php echo wassupURI::get_admin_url('admin.php?page='.$menu_page);?>"><?php echo $menu_name;?></a></li><?php
|
612 |
}
|
613 |
}//end for
|
614 |
+
echo "\n";?>
|
615 |
+
<li id="donate-link" class="wassup-menu-link"><?php
|
616 |
$donate_link_url="";
|
617 |
if(is_multisite() && is_network_admin()){
|
618 |
$donate_link_url=network_admin_url('admin.php?page=wassup-options&tab=donate');
|
619 |
}elseif(current_user_can('manage_options')){
|
620 |
$donate_link_url=admin_url('admin.php?page=wassup-options&tab=donate');
|
621 |
}
|
622 |
+
wassup_donate_link($donate_link_url);?></li><?php
|
623 |
}else{
|
624 |
if (($selected=="wassup-stats" || $selected=="wassup") && !empty($_GET['ml'])) $selected=$_GET['ml'];
|
625 |
echo "\n";?>
|
626 |
+
<li id="menu-link-3" class="wassup-menu-link<?php if($selected=='wassup-online') echo ' current';?>"><a href="<?php echo wassupURI::get_admin_url('index.php?page=wassup-stats&ml=wassup-online');?>"><?php _e('Current Visitors Online','wassup');?></a></li>
|
627 |
+
<li id="menu-link-2" class="wassup-menu-link<?php if($selected=='wassup-spia' || $selected=='wassup-spy') echo ' current';?>"><a href="<?php echo wassupURI::get_admin_url('index.php?page=wassup-stats&ml=wassup-spia');?>"><?php _e('SPY Visitors','wassup');?></a></li>
|
628 |
+
<li id="menu-link-1" class="wassup-menu-link<?php if($selected=='wassup' || $selected==$wassupfolder || $selected=='wassup-stats') echo ' current';?>"><a href="<?php echo wassupURI::get_admin_url('index.php?page=wassup-stats');?>"><?php _e('Visitor Details','wassup');?></a></li><?php
|
629 |
+
echo "\n";?>
|
630 |
+
<li id="donate-link" class="wassup-menu-link"><?php wassup_donate_link();?></li><?php
|
631 |
} //end if submenu
|
632 |
echo "\n";?>
|
633 |
</ul><div style="clear:right;"></div>
|
636 |
|
637 |
function wassup_donate_link($link_url=""){
|
638 |
global $wdebug_mode;
|
639 |
+
//display Paypal link/form for donate tab
|
|
|
|
|
640 |
if(!empty($link_url) && strpos($link_url,'//')!==false){
|
641 |
echo '<a href="'.$link_url.'"><img src="'.WASSUPURL.'/img/donate-button-sm.png" alt="'.__("Donate","wassup").'"/></a>';
|
642 |
}else{
|
656 |
echo "\n";?>
|
657 |
</form>
|
658 |
<?php
|
659 |
+
}
|
660 |
} //end wassup_donate_link
|
661 |
|
662 |
/**
|
687 |
if(!is_object($current_user) || empty($current_user->ID)) wp_get_current_user();
|
688 |
$wassup_user_settings = get_user_option('_wassup_settings',$current_user->ID);
|
689 |
$tab=0;
|
690 |
+
if(isset($_GET['tab'])) $tab=esc_attr($_GET['tab']);
|
691 |
$admin_message="";
|
692 |
$wassup_table = $wassup_options->wassup_table;
|
693 |
$network_settings=array();
|
710 |
// RUN THE DELETE/SAVE/RESET FORM OPTIONS
|
711 |
// Processed here so that any resulting "admin_message" or errors will display with page
|
712 |
//DELETE NOW options...
|
713 |
+
if(!empty($_POST) && ($wassuppage== "wassup-options" || $wassuppage == "wassup" || $wassuppage=="wassup-stats" || $wassuppage=="wassup-donate")){
|
714 |
+
if($wassuppage=="wassup-options" || $wassuppage=="wassup-donate"){
|
715 |
//check user capability and verify admin referer/wp nonce before processing form changes and delete requests @since v1.9
|
716 |
if(current_user_can('manage_options') && wassupURI::is_valid_admin_referer('wassupsettings-'.$current_user->ID)){
|
717 |
//workaround code for Google Chrome's empty 'onclick=submit()' "delete NOW" value @since v1.9
|
863 |
$admin_message = __("Wassup options reset successfully","wassup")."." ;
|
864 |
$wassup_user_settings=$wassup_options->resetUserSettings();
|
865 |
if($wassup_options->is_recording_active()) wassup_cron_startup(); //restart wp-cron
|
866 |
+
//New in v1.9.4: reset-to-default updates Wassup's map apikey
|
867 |
+
if(empty($wassup_options->wassup_googlemaps_key)){
|
868 |
+
$key=$wassup_options->lookup_apikey();
|
869 |
+
}
|
870 |
}
|
871 |
}
|
872 |
} //end if !delete_now
|
980 |
}elseif ($wassuppage == "wassup-spia" || $wassuppage == "wassup-spy"){?>
|
981 |
<h2>WassUp - <?php _e("SPY Visitors", "wassup"); ?></h2><?php
|
982 |
wassup_page_contents(array('wassuppage'=>$wassuppage,'tab'=>$tab));
|
983 |
+
}elseif ($wassuppage=="wassup-options" || $wassuppage=="wassup-donate"){?>
|
984 |
<h2>WassUp - <?php _e('Options','wassup'); ?></h2><?php
|
985 |
if (!function_exists('wassup_optionsView')) include_once(WASSUPDIR.'/lib/settings.php');
|
986 |
wassup_optionsView($tab);
|
987 |
+
}elseif ($wassuppage=="wassup-faq"){ ?>
|
988 |
+
<h2>WassUp - <?php _e('Frequently Asked Questions','wassup'); ?></h2><?php
|
989 |
+
if (!function_exists('wassup_faq')) include_once(WASSUPDIR.'/lib/faq.php');
|
990 |
+
wassup_faq();
|
991 |
}else{
|
992 |
return;
|
993 |
}
|
1000 |
<nobr><span class="separator">|</span> <?php echo __('Exec time','wassup').": $totaltime"; ?></nobr>
|
1001 |
</small></p>
|
1002 |
</div> <!-- end wassup-wrap --><?php
|
1003 |
+
|
1004 |
+
//New in v1.9.4: start the refresh timer at end of page render
|
1005 |
+
if($wassuppage == "wassup"){
|
1006 |
+
$wrefresh = (int)$wassup_options->wassup_refresh;
|
1007 |
+
if($wrefresh >0){
|
1008 |
+
echo "\n";?>
|
1009 |
+
<script type="text/javascript">ActivateCountDown("CountDownPanel",<?php echo ($wrefresh*60);?>);</script><?php
|
1010 |
+
}
|
1011 |
+
}
|
1012 |
+
echo "\n";
|
1013 |
} //end WassUp
|
1014 |
|
1015 |
/**
|
1130 |
if ($currenttot > 0) {
|
1131 |
$currentlogged = $TotOnline->calc_tot("count",null,"AND `username`!=''","DISTINCT");
|
1132 |
$currentauth = $TotOnline->calc_tot("count",null,"AND `comment_author`!='' AND `username`=''","DISTINCT");
|
1133 |
+
$sql=sprintf("SELECT SQL_NO_CACHE `id`, wassup_id, count(wassup_id) as numurl, max(`timestamp`) as max_timestamp, `ip`, `hostname`, `searchengine`, `search`, `searchpage`, `urlrequested`, `referrer`, `agent`, `browser`, `spider`, `feed`, `os`, `screen_res`, GROUP_CONCAT(DISTINCT `username` ORDER BY `username` SEPARATOR '| ') AS login_name, `comment_author`, `language`, `spam` AS malware_type, `url_wpid` FROM $wassup_tmp_table WHERE %s GROUP BY `wassup_id` ORDER BY max_timestamp DESC",$whereis);
|
1134 |
$qryC=$wpdb->get_results($sql);
|
1135 |
if(!empty($qryC) && is_wp_error($qryC)){
|
1136 |
$errno=$qryC->get_error_code();
|
1176 |
$Ousername="";
|
1177 |
$ulclass="users";
|
1178 |
$unclass="";
|
1179 |
+
$logged_user="";
|
1180 |
// User is logged in or is a comment's author
|
1181 |
if($cv->login_name != "" || $cv->comment_author !=""){
|
1182 |
$utype="";
|
1183 |
+
$logged_user=trim($cv->login_name,'| ');
|
1184 |
+
if($logged_user != ""){
|
1185 |
+
if(strpos($logged_user,'|')!==false){
|
1186 |
+
$loginnames=explode('|',$logged_user);
|
|
|
1187 |
foreach($loginnames AS $name){
|
1188 |
$logged_user=trim($name);
|
1189 |
+
if(!empty($logged_user)) break;
|
|
|
|
|
1190 |
}
|
1191 |
}
|
1192 |
$utype=__("LOGGED IN USER","wassup");
|
1204 |
$Ousername='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($logged_user).'</strong></span></li>';
|
1205 |
}
|
1206 |
}else{
|
1207 |
+
$Ousername='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($logged_user).'</strong></span></li>';
|
1208 |
}
|
1209 |
$unclass="sum-box-log";
|
1210 |
}
|
1216 |
}
|
1217 |
if(!empty($cv->spider)) $unclass="sum-box-spider";
|
1218 |
if(!empty($cv->malware_type)) $unclass="sum-box-spam";
|
1219 |
+
if(strlen($ip)>20) $unclass .=" sum-box-ipv6";
|
1220 |
echo "\n";?>
|
1221 |
<div class="sum-rec"><?php
|
1222 |
// Visitor Record - raw data (hidden)
|
1501 |
$wwhereis .=" AND `ip`='$wip'";
|
1502 |
}
|
1503 |
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
1504 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1505 |
//Clear non-sticky filter parameters from URL before applying new filters
|
1506 |
$URLQuery=trim(html_entity_decode($_SERVER['QUERY_STRING']));
|
1507 |
//'remove_query_arg' function replaces "preg_replace" to remove args from query string @since v1.9.1
|
1549 |
</td></tr>
|
1550 |
</tbody></table>
|
1551 |
</form><?php
|
1552 |
+
// Instantiate class to count items
|
1553 |
+
$wTot = New WassupItems($wassup_table,$from_date,$to_date,$wwhereis,$wlimit);
|
1554 |
+
$wTot->WpUrl=$wpurl;
|
1555 |
+
$witemstot=0;
|
1556 |
+
$wpagestot=0;
|
1557 |
+
$wspamtot=0;
|
1558 |
+
$markedtot=0;
|
1559 |
+
$searchtot=0;
|
1560 |
+
$ipsearch="";
|
1561 |
+
//don't apply "search" for marked ip (in whereis)
|
1562 |
+
if(!empty($wsearch) && $wsearch==$wip){
|
1563 |
+
$ipsearch=$wsearch;
|
1564 |
+
$wsearch="";
|
1565 |
+
}
|
1566 |
+
//to prevent browser timeouts, send <!--heartbeat-->
|
1567 |
+
echo "\n<!--heartbeat-->";
|
1568 |
+
// MAIN QUERY
|
1569 |
+
if(!empty($wTot->totrecords)){
|
1570 |
+
$witemstot=$wTot->calc_tot("count",$wsearch,null,"DISTINCT");
|
1571 |
+
echo "\n<!--heartbeat-->";
|
1572 |
+
if(!empty($wsearch))$wpagestot=$wTot->calc_tot("count",$wsearch);
|
1573 |
+
else $wpagestot=(int)$wTot->totrecords;
|
1574 |
+
echo "\n<!--heartbeat-->";
|
1575 |
+
$wspamtot=$wTot->calc_tot("count",$wsearch,"AND `spam`>'0'");
|
1576 |
+
// Check if some records were marked
|
1577 |
+
if (!empty($wip)){
|
1578 |
+
if (empty($ipsearch)){
|
1579 |
+
echo "\n<!--heartbeat-->";
|
1580 |
+
$markedtot=$wTot->calc_tot("count",$wsearch," AND `ip`='".$wip."'","DISTINCT");
|
1581 |
+
}else{
|
1582 |
+
//avoid redundant calculations when search and mark/wip are the same
|
1583 |
+
$markedtot=$witemstot;
|
1584 |
+
}
|
1585 |
+
}
|
1586 |
+
// Check if some records were searched
|
1587 |
+
if(!empty($wsearch)) {
|
1588 |
+
//searchtot is the same query as witemstot above and shouldn't be re-calculated (visitor detail fix)
|
1589 |
+
//$searchtot=$wTot->calc_tot("count",$wsearch,null,"DISTINCT");
|
1590 |
+
$searchtot=$witemstot;
|
1591 |
+
}elseif(!empty($ipsearch)){
|
1592 |
+
$searchtot=$markedtot;
|
1593 |
+
}
|
1594 |
+
}
|
1595 |
+
if(!empty($ipsearch)) $wsearch=$ipsearch;
|
1596 |
// Print Site Usage summary
|
1597 |
echo "\n";?>
|
1598 |
<div class='centered'>
|
1600 |
<ul><li><span style="border-bottom:2px solid #0077CC;"><?php echo (int)$witemstot;?></span> <?php _e('Visits','wassup');?></li>
|
1601 |
<li><span style="border-bottom:2px dashed #FF6D06;"><?php echo (int)$wpagestot;?></span> <?php _e('Pageviews','wassup');?></li>
|
1602 |
<li><span><?php echo @number_format(($wpagestot/$witemstot),2);?></span> <?php _e('Pages/Visits','wassup');?></li>
|
1603 |
+
<li><span class="spamtoggle"><nobr><?php
|
1604 |
//add spam form overlay when spamcheck is enabled and user is admin or can 'manage_options'
|
1605 |
$hidden_spam_form=false;
|
1606 |
if($wassup_options->wassup_spamcheck == 1 && ($wassup_options->is_admin_login() || current_user_can('manage_options'))){
|
1615 |
}
|
1616 |
echo '%)</span>';
|
1617 |
if($hidden_spam_form) echo '</a>';
|
1618 |
+
echo '</span> '.__('Spams','wassup');?></nobr></li>
|
1619 |
</ul><br/>
|
1620 |
<div id="chart_placeholder" class="placeholder" align="center"></div>
|
1621 |
</div>
|
1636 |
<p class="indent-opt"><input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_options->wassup_refspam==1) echo $checked;?>/> <?php _e('Record referrer spam attempts','wassup');?></p>
|
1637 |
<p class="indent-opt"><input type="checkbox" name="wassup_attack" value="1" <?php if($wassup_options->wassup_attack==1) echo $checked;?>/> <?php _e("Record attack/exploit attempts (libwww-perl agent)","wassup");?></p>
|
1638 |
<p class="indent-opt"><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");?></p>
|
1639 |
+
<p><input type="submit" name="submit-spam" class="button" value="<?php _e('Save Settings','wassup'); ?>" /></p>
|
1640 |
</form>
|
1641 |
</div> <!-- /hiddenspam --><?php
|
1642 |
}
|
1655 |
<a href="?<?php echo esc_attr($URLQuery.'&chart=1');?>" class="icon"><img src="<?php echo WASSUPURL.'/img/chart_add.png" alt="'.__('show chart','wassup').'" title="'.__('Show the chart','wassup'); ?>"/></a><a href="?<?php echo esc_attr($URLQuery.'&chart=1');?>"><?php _e("Show chart","wassup");?></a><?php
|
1656 |
}?> <span class="separator">|</span>
|
1657 |
<?php
|
1658 |
+
//Top Stats window/popup params
|
1659 |
+
//v1.9.4 bugfix: topstats from_date cannot be "0"
|
1660 |
+
if($from_date==0 && $wlast==0){
|
1661 |
+
$from_date=$wpdb->get_var(sprintf("SELECT MIN(`timestamp`) FROM `$wassup_table` WHERE `timestamp` < '%d'",$to_date));
|
1662 |
+
}
|
1663 |
+
//for date range shown in topstats report
|
1664 |
$wdformat = get_option("date_format");
|
1665 |
if(($to_date - $from_date)>24*3600){
|
1666 |
$stats_range=gmdate("$wdformat",$from_date)." - ".gmdate("$wdformat",$to_date);
|
1733 |
<div id="pag" align="center"><?php $p->show();?></div><?php
|
1734 |
}
|
1735 |
//# Detailed List of Wassup Records...
|
1736 |
+
$wmain=$wTot->calc_tot("main",$wsearch);
|
1737 |
+
echo "\n<!--heartbeat-->";
|
1738 |
$error_msg="";
|
1739 |
$data_error="";
|
1740 |
if($witemstot>0 && is_array($wmain) && count($wmain)>0){
|
1741 |
$rkcount=0;
|
1742 |
foreach($wmain as $rk){
|
1743 |
//monitor for script timeout limit and extend, if needed @since v1.9
|
1744 |
+
$time_passed=time() - $stimer_start;
|
1745 |
+
if($time_passed > ($stimeout-10)){
|
1746 |
+
if($rkcount>0){
|
|
|
|
|
|
|
|
|
|
|
1747 |
//report is hung, so terminate here
|
1748 |
$data_error=__("Records display interrupted.","wassup")." - script timeout/partial data.";
|
|
|
1749 |
}else{ //no data, database problem
|
1750 |
$data_error=__("Unable to display records.","wassup")." - script timeout/no data.";
|
|
|
1751 |
}
|
1752 |
+
break;
|
1753 |
}
|
1754 |
$rkcount++;
|
1755 |
$dateF = gmdate("d M Y", $rk->max_timestamp);
|
1768 |
$ulclass="users";
|
1769 |
$Ouser="";
|
1770 |
$Ospider="";
|
1771 |
+
$referrer="";
|
1772 |
+
$urlrequested="";
|
1773 |
//for logged-in user/administrator in ul list
|
1774 |
+
$logged_user=trim($rk->login_name,'| ');
|
1775 |
+
if($logged_user != ""){
|
1776 |
+
if(strpos($logged_user,'|')!==false){
|
1777 |
+
$loginnames=explode('|',$logged_user);
|
1778 |
foreach($loginnames AS $name){
|
1779 |
$logged_user=trim($name);
|
1780 |
if(!empty($logged_user)){
|
1797 |
if($show_avatars) $Ouser='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.get_avatar($udata->ID,'20').' '.esc_attr($logged_user).'</strong></span></li>';
|
1798 |
else $Ouser='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($logged_user).'</strong></span></li>';
|
1799 |
}else{
|
1800 |
+
$Ouser='<li class="users"><span class="indent-li-agent">'.$utype.': <strong>'.esc_attr($logged_user).'</strong></span></li>';
|
1801 |
}
|
1802 |
$unclass="sum-box-log";
|
1803 |
if($wdebug_mode){
|
1829 |
if(!empty($rk->malware_type)){
|
1830 |
$unclass="sum-box-spam";
|
1831 |
}
|
1832 |
+
if(strlen($ip)>20) $unclass .=" sum-box-ipv6";
|
1833 |
echo "\n";?>
|
1834 |
<div id="delID<?php echo esc_attr($rk->wassup_id);?>" class="sum-rec <?php if($wassup_user_settings['umark']==1 && $wassup_user_settings['uip']==$ip) echo 'sum-mark';?>"> <?php
|
1835 |
// Visitor Record - raw data (hidden)
|
2037 |
if (!empty($wassup_user_settings['detail_chart']) || (!empty($_GET['chart']) && "1" == $_GET['chart'])) {
|
2038 |
$chart_type = (!empty($wassup_options->wassup_chart_type))? $wassup_options->wassup_chart_type: "2";
|
2039 |
//show Google!Charts image
|
2040 |
+
$html='<p style="padding-top:10px;">'.__("Too few records to print chart","wassup").'...</p>';
|
2041 |
if ($wpagestot > 12) {
|
2042 |
//extend script timeout for chart
|
2043 |
if($can_set_timelimit && (time()-$stimer_start)>$stimeout-30){
|
2046 |
}
|
2047 |
$chart_url=$wTot->TheChart($wlast,$res,"180",$wsearch,$chart_type,"bg,s,e9e9ea|c,lg,90,deeeff,0,e9e9ea,0.8","page",$wtype);
|
2048 |
$html='<img src="'.$chart_url.'" alt="'.__("Graph of visitor hits","wassup").'" class="chart" width="'.$res.'" />';
|
|
|
|
|
2049 |
}
|
2050 |
} else {
|
2051 |
$html='<p style="padding-top:10px"> </p>';
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: michelem, helened
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=michele%40befree%2eit&item_name=WassUp&no_shipping=0&no_note=1&tax=0¤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.
|
7 |
-
Stable tag: 1.9.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -95,7 +95,7 @@ For people with database size limitations, WassUp has a few options to manage th
|
|
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
|
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 ==
|
@@ -106,46 +106,23 @@ Check the box for "Enable widget/small chart in admin dashboard" under WassUp >>
|
|
106 |
= How do I display WassUp widgets on my site? =
|
107 |
From the Wordpress widgets panel, drag the "WassUp Online" widget or the "Wassup Top Stats" widget from the list of available widgets on the left into your theme's "Sidebar" or "Footer" area on the right.
|
108 |
|
109 |
-
= My Wordpress theme is not widget ready. Is it possible to display WassUp widget on my site? =
|
110 |
-
Yes. Insert the template tag `wassup_sidebar()` into your theme's "sidebar.php" file to display Wassup widgets as a single combined widget on your site.
|
111 |
-
|
112 |
= How do I view the real-time visitor geolocation map in WassUp? =
|
113 |
-
Check the box for "Display a GEO IP Map in spy visitors view" under WassUp >>Options >>[General Setup]
|
114 |
|
115 |
-
=
|
116 |
-
|
117 |
|
118 |
= How do I exclude a visitor from being recorded? =
|
119 |
-
Navigate to WassUp >>Options >>[Filters & Exclusions] tab and enter a visitor's username, IP address, or hostname into the appropriate
|
120 |
|
121 |
= How do I stop (temporarily) WassUp from recording new visits on my site? =
|
122 |
Uncheck the box for "Enable statistics recording" under WassUp >>Options >>[General Setup] tab.
|
123 |
|
124 |
-
= In Wordpress multisite, how do I stop (temporarily) WassUp from recording new visitors on all sites in the network? =
|
125 |
-
Answer #1: If plugin is "network activated", login as network admin, go to the Network admin dashboard, navigate to WassUp >>Options >>[General Setup] tab and uncheck the box for "Enable Statistics Recording for network" and save.
|
126 |
-
|
127 |
-
Answer #2: If plugin is NOT "network activated", login as network admin, go to the main site/parent domain admin dashboard, navigate to WassUp >>Options >>[General Setup] tab, then uncheck the box for "Enable Statistics Recording for network" and save.
|
128 |
-
|
129 |
-
= No data is displayed; or the "Visitor Details" panel show 0 records for the last 24 hours. How do I fix this? =
|
130 |
-
Answer #1: Check the box for "Enable statistics recording" setting under WassUp >>Options >>[General Setup] tab and save.
|
131 |
-
|
132 |
-
Answer #2: Click the [Reset to Default] button under WassUp >>Options >>[General Setup] tab.
|
133 |
-
|
134 |
-
Answer #3: Navigate to WassUp >>Options >>[Manage File & Data] tab and uncheck the "MySQL Delayed Insert" setting and save.
|
135 |
-
|
136 |
-
Answer #4: Deactivate and Re-activate Wassup from Wordpress plugins panel.
|
137 |
-
|
138 |
= My popular web site is hosted on a shared server with restrictive database size limits. How do I prevent WassUp's table from growing too big for my allocated quota? =
|
139 |
Navigate to Wassup >> Options >> [Manage Files & Data] tab and enable the setting for "Auto Delete" of old records and/or check the box to receive an email alert when the table size limit is exceeded.
|
140 |
|
141 |
= WassUp visitor counts are much lower than actual for my website. Why is there a discrepancy and how do I fix it? =
|
142 |
-
Low visitor count is likely caused by page caching on your website. WassUp is incompatible with static
|
143 |
-
|
144 |
-
= Is there any caching plugin that works with WassUp? =
|
145 |
-
[WP Widget Cache](http://wordpress.org/extend/plugins/wp-widget-cache/) is the only caching plugin verified to work with WassUp.
|
146 |
-
|
147 |
-
= Why does WassUp stats sometimes show more page views than actual pages clicked by a person? =
|
148 |
-
"Phantom" page views can occur when a user's browser does automatic feed retrieval, link pre-fetching, a page refresh, or automatically adds your website to it's "Top sites" window (Safari). WassUp tracks these because they are valid requests from the browser and are sometimes indistinguishable from user link clicks.
|
149 |
|
150 |
= How do I upgrade WassUp safely when my site has frequent visitors? =
|
151 |
Read the "IMPORTANT safe upgrade instructions" in the [installation section](http://wordpress.org/extend/plugins/wassup/installation/) of this plugin's README.txt file.
|
@@ -226,14 +203,40 @@ To safely upgrade WassUp when your site is busy, you must manually stop visitor
|
|
226 |
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)
|
227 |
|
228 |
= Compatibility Notice =
|
229 |
-
* WassUp is incompatible with the following static page caching plugins:
|
230 |
|
231 |
== Upgrade Notice ==
|
232 |
-
= 1.9.
|
233 |
-
* Important bugfix upgrade. DO NOT
|
234 |
|
235 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
= v1.9.3 =
|
|
|
237 |
* fixed an 'unknown modifier' preg_match error in 'wassup.php' module.
|
238 |
* fixed an IP validation loophole that could cause invalid/malformed forwarding IPs in client's http_header to be stored as client IP.
|
239 |
* fixed code to stop recording of front-end ajax requests ('/wp-admin/admin-ajax.php' url) as "possible spam/malware" hits.
|
@@ -337,6 +340,7 @@ When you activate this plugin (as described in "Installation"), it works "as is"
|
|
337 |
...
|
338 |
|
339 |
== Infos ==
|
|
|
340 |
= Plugin Home =
|
341 |
* [http://www.wpwp.org](http://www.wpwp.org "http://www.wpwp.org")
|
342 |
|
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.8
|
7 |
+
Stable tag: 1.9.4
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
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 html 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 ==
|
106 |
= How do I display WassUp widgets on my site? =
|
107 |
From the Wordpress widgets panel, drag the "WassUp Online" widget or the "Wassup Top Stats" widget from the list of available widgets on the left into your theme's "Sidebar" or "Footer" area on the right.
|
108 |
|
|
|
|
|
|
|
109 |
= How do I view the real-time visitor geolocation map in WassUp? =
|
110 |
+
Check the box for "Display a GEO IP Map in spy visitors view" under WassUp >>Options >>[General Setup] and save, then navigate to WassUp >>SPY Visitors panel to see the map.
|
111 |
|
112 |
+
= The map has vanished and I get a message like: "Oops, something went wrong" or "Google has disabled use of the Maps API for this application". How do I fix this?" =
|
113 |
+
Try upgrading to the latest version of Wassup, or go to Wassup-Options and click the Reset-to-Default button if you have already upgraded, or sign up for your own Google!Maps API key at https://developers.google.com/maps/documentation/javascript/get-api-key#key then enter the key under \"Spy Visitors settings\" in Wassup >>Options >>General Settings tab.
|
114 |
|
115 |
= How do I exclude a visitor from being recorded? =
|
116 |
+
Navigate to WassUp >>Options >>[Filters & Exclusions] tab and enter a visitor's username, IP address, or hostname into the appropriate field and save.
|
117 |
|
118 |
= How do I stop (temporarily) WassUp from recording new visits on my site? =
|
119 |
Uncheck the box for "Enable statistics recording" under WassUp >>Options >>[General Setup] tab.
|
120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
= My popular web site is hosted on a shared server with restrictive database size limits. How do I prevent WassUp's table from growing too big for my allocated quota? =
|
122 |
Navigate to Wassup >> Options >> [Manage Files & Data] tab and enable the setting for "Auto Delete" of old records and/or check the box to receive an email alert when the table size limit is exceeded.
|
123 |
|
124 |
= WassUp visitor counts are much lower than actual for my website. Why is there a discrepancy and how do I fix it? =
|
125 |
+
Low visitor count is likely caused by page caching on your website. WassUp is incompatible with static html caching plugins such as WP Supercache, WP Cache, WP Fastest Cache, and Hyper Cache. To fix, uninstall your cache plugin or switch to a different (javascript-based) statistics plugin.
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
|
127 |
= How do I upgrade WassUp safely when my site has frequent visitors? =
|
128 |
Read the "IMPORTANT safe upgrade instructions" in the [installation section](http://wordpress.org/extend/plugins/wassup/installation/) of this plugin's README.txt file.
|
203 |
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)
|
204 |
|
205 |
= Compatibility Notice =
|
206 |
+
* WassUp is incompatible with the following static page caching plugins: WP Super Cache, WP Cache, WP Fastest Cache, and WP Hyper Cache.
|
207 |
|
208 |
== Upgrade Notice ==
|
209 |
+
= 1.9.4 =
|
210 |
+
* Important feature & bugfix upgrade. DO NOT upgrade when your site busy! Read [installation instructions](http://wordpress.org/plugins/wassup/installation/) for safe upgrade instructions.
|
211 |
|
212 |
== Changelog ==
|
213 |
+
= v1.9.4 =
|
214 |
+
= Important feature improvement & bugfix upgrade =
|
215 |
+
* new option to whitelist referrers that are mislabeled as spam in WassUp (ex: Rx or sexy words in domain name)
|
216 |
+
* new option to export data in Excel-compatible CSV format
|
217 |
+
* improved export speed and added a dialog window
|
218 |
+
* improved queries on big data by using temporary tables as subsets in "wassupItems" class
|
219 |
+
* updated visitor detail code to speed up output display
|
220 |
+
* updated plugin FAQ section and added a FAQ link to top menu tabs
|
221 |
+
* updated css files, wassup.css and jquery-ui.css for widgets & dialog
|
222 |
+
* updated translation template "wassup.pot"
|
223 |
+
* fixed a compatibility issue with Woocommerce plugin AJAX requests
|
224 |
+
* fixed a search field validation issue with URL special characters
|
225 |
+
* fixed a bug in "stringShortener" function that caused empty results
|
226 |
+
* fixed a bug in Top Stats widget that caused blank lines to display
|
227 |
+
* fixed some Top Stats widget translations
|
228 |
+
* removed Google!maps API key from Wassup source due to Google's TOS limitations
|
229 |
+
* miscellaneous minor bugfixes
|
230 |
+
|
231 |
+
= v1.9.3.1 =
|
232 |
+
= Important bugfix upgrade =
|
233 |
+
* fixed various preg_match regexes to improve matching
|
234 |
+
* fixed a parenthesis error in tracking/exclusion code for 404 hits
|
235 |
+
* fixed bug that caused duplicate country code in searchengine name
|
236 |
+
* minor code changes.
|
237 |
+
|
238 |
= v1.9.3 =
|
239 |
+
= Important bugfix upgrade =
|
240 |
* fixed an 'unknown modifier' preg_match error in 'wassup.php' module.
|
241 |
* fixed an IP validation loophole that could cause invalid/malformed forwarding IPs in client's http_header to be stored as client IP.
|
242 |
* fixed code to stop recording of front-end ajax requests ('/wp-admin/admin-ajax.php' url) as "possible spam/malware" hits.
|
340 |
...
|
341 |
|
342 |
== Infos ==
|
343 |
+
|
344 |
= Plugin Home =
|
345 |
* [http://www.wpwp.org](http://www.wpwp.org "http://www.wpwp.org")
|
346 |
|
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
|
@@ -49,25 +49,30 @@ if((!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])
|
|
49 |
*/
|
50 |
function wassup_init($init_settings=false){
|
51 |
global $wp_version,$wassup_options,$wdebug_mode;
|
|
|
52 |
//define wassup globals & constants
|
53 |
if(!defined('WASSUPVERSION')){
|
54 |
-
define('WASSUPVERSION','1.9.
|
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 |
//turn off debug mode if this is ajax action request @since v1.9.2
|
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
|
@@ -78,7 +83,7 @@ function wassup_init($init_settings=false){
|
|
78 |
if(@is_readable($moFile)){
|
79 |
load_textdomain('wassup',$moFile);
|
80 |
}elseif(strlen($current_locale)<6){
|
81 |
-
//
|
82 |
$lang_only=substr($current_locale,0,2).'_'.strtoupper(substr($current_locale,0,2));
|
83 |
if($lang_only != $current_locale && preg_match('/^[a-z]{2}_[A-Z]{2}$/',$lang_only)>0){
|
84 |
$moFile=WASSUPDIR."/language/".$lang_only."mo";
|
@@ -93,7 +98,7 @@ function wassup_init($init_settings=false){
|
|
93 |
$is_compatible=true;
|
94 |
if(version_compare($wp_version,'4.5','<') || version_compare($php_vers,'5.2','<')){
|
95 |
include_once(WASSUPDIR.'/lib/compatibility.php');
|
96 |
-
$is_compatible=
|
97 |
}
|
98 |
if($is_compatible){
|
99 |
if(!class_exists('wassupOptions')) require_once(WASSUPDIR.'/lib/wassup.class.php');
|
@@ -289,6 +294,7 @@ function wassup_install($network_wide=false) {
|
|
289 |
}
|
290 |
$wassup_options->wassup_active=$active_status;
|
291 |
$wassup_options->saveSettings();
|
|
|
292 |
//schedule regular cleanup of temp recs @since v1.9
|
293 |
if(!empty($active_status)) wassup_cron_startup();
|
294 |
}else{
|
@@ -412,7 +418,7 @@ function wassup_uninstall($network_wide=false){
|
|
412 |
delete_usermeta($current_user->ID,$wpdb->prefix.'_wassup_settings');
|
413 |
}
|
414 |
} //end foreach
|
415 |
-
//lastly, delete network settings &
|
416 |
if($network_wide){
|
417 |
restore_current_blog();
|
418 |
delete_site_option('wassup_network_settings');
|
@@ -461,7 +467,7 @@ function wassup_start(){
|
|
461 |
* Perform plugin tasks for before http headers are sent.
|
462 |
* -block obvious xss and sql injection attempts on Wassup itself
|
463 |
* -initialize new network subsite settings (via 'wassup_init'), if any
|
464 |
-
* -
|
465 |
* -start wassup tracking
|
466 |
*/
|
467 |
function wassup_preload(){
|
@@ -469,10 +475,9 @@ function wassup_preload(){
|
|
469 |
//block any obvious sql injection attempts involving WassUp
|
470 |
$request_uri=$_SERVER['REQUEST_URI'];
|
471 |
if(!$request_uri) $request_uri=$_SERVER['SCRIPT_NAME']; // IIS
|
472 |
-
//don't test referrer for Wassup..could cause non-wassup request redirect @since v1.9.2
|
473 |
if(stristr($request_uri,'wassup')!==false && strstr($request_uri,'err=wassup403')===false){
|
474 |
$error_msg="";
|
475 |
-
//don't test logged-in user requests
|
476 |
if(!is_user_logged_in()){
|
477 |
if(preg_match('/(<|<?|�*60;?|%3C)scr(ipt|[^0-9a-z\-_])/i',$request_uri)>0){
|
478 |
$error_msg=__('Bad request!','wassup');
|
@@ -524,7 +529,7 @@ function wassup_preload(){
|
|
524 |
if(function_exists('wassup_compat_preload')){
|
525 |
wassup_compat_preload();
|
526 |
}
|
527 |
-
//Start visitor tracking
|
528 |
if(!empty($wassup_options) && $wassup_options->is_recording_active()){
|
529 |
//add actions for wp-cron scheduled tasks - @since v1.9
|
530 |
if(!has_action('wassup_scheduled_dbtasks')) add_action('wassup_scheduled_dbtasks',array('wassupDb','scheduled_dbtask'),10,1);
|
@@ -536,6 +541,8 @@ function wassup_preload(){
|
|
536 |
if(!empty($wassup_options->delete_auto) && $wassup_options->delete_auto !="never"){
|
537 |
if(!has_action('wassup_scheduled_purge')) add_action('wassup_scheduled_purge','wassup_auto_cleanup');
|
538 |
}
|
|
|
|
|
539 |
wassupPrepend();
|
540 |
}
|
541 |
if($wdebug_mode && headers_sent()){
|
@@ -631,13 +638,14 @@ function wassup_add_scripts(){
|
|
631 |
}elseif($wassuppage == "wassup-options"){
|
632 |
//use Wordpress' jquery-ui.js only when current
|
633 |
if(version_compare($wp_version,'4.5','>=') || !function_exists('wassup_compat_add_scripts')){
|
634 |
-
wp_enqueue_script('jquery-ui-widget');
|
635 |
-
wp_enqueue_script('jquery-ui-tabs');
|
636 |
wp_enqueue_script('jquery-ui-dialog');
|
|
|
637 |
}
|
638 |
//never use Wordpress' jquery-ui.css
|
639 |
wp_dequeue_style('jquery-ui-tabs.css');
|
640 |
wp_dequeue_style('jquery-ui-theme.css');
|
|
|
|
|
641 |
wp_dequeue_style('jquery-ui.css');
|
642 |
}
|
643 |
//use Wassup's custom copy of thickbox.js always
|
@@ -667,6 +675,7 @@ function export_wassup(){
|
|
667 |
global $wpdb, $current_user, $wassup_options, $wdebug_mode;
|
668 |
|
669 |
//#1st verify that export request is valid
|
|
|
670 |
$exportdata=false;
|
671 |
$badrequest=false;
|
672 |
$err_msg="";
|
@@ -689,8 +698,7 @@ function export_wassup(){
|
|
689 |
if(empty($current_user->ID)){
|
690 |
wp_die($err_msg);
|
691 |
}else{
|
692 |
-
$
|
693 |
-
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
694 |
wp_safe_redirect(wassupURI::get_admin_url('admin.php?page=wassup-options&tab=3'));
|
695 |
}
|
696 |
exit;
|
@@ -698,67 +706,79 @@ function export_wassup(){
|
|
698 |
$err_msg="";
|
699 |
$wassup_table=$wassup_options->wassup_table;
|
700 |
$wherecondition="";
|
|
|
|
|
|
|
|
|
701 |
//for multisite compatibility
|
702 |
-
$multisite_whereis="";
|
703 |
if($wassup_options->network_activated_plugin()){
|
704 |
-
if(!is_network_admin() && !empty($GLOBALS['current_blog']->blog_id)) $
|
705 |
}
|
706 |
-
|
|
|
|
|
707 |
if(isset($_REQUEST['startid']) && is_numeric($_REQUEST['startid'])){
|
708 |
-
$
|
709 |
-
}
|
710 |
-
if(!empty($start_recid)){
|
711 |
-
$wherecondition="WHERE `id`>".(int)$start_recid.$multisite_whereis;
|
712 |
-
}elseif(!empty($multisite_whereis)){
|
713 |
-
$wherecondition="WHERE `id`>0 ".$multisite_whereis;
|
714 |
-
}
|
715 |
-
//omit spam records from export @since v1.9.1
|
716 |
-
if(empty($wassup_options->export_spam)){
|
717 |
-
if(empty($wherecondition)) $wherecondition="WHERE `spam`='0'";
|
718 |
-
else $wherecondition .=" AND `spam`='0'";
|
719 |
}
|
720 |
//# check for records before exporting...
|
721 |
-
$filename='wassup.'.gmdate('Y-m-d').'.sql';
|
722 |
$numrecords=0;
|
723 |
$exportdata=false;
|
724 |
-
$numrecords=$wpdb->get_var(sprintf("SELECT COUNT(`wassup_id`) FROM `%s` %s",esc_attr($wassup_table),$wherecondition));
|
725 |
if(!is_numeric($numrecords)) $numrecords=0;
|
726 |
if($numrecords > 0){
|
727 |
-
//
|
728 |
-
$
|
729 |
-
|
730 |
-
|
731 |
//Could take a long time, so increase script execution time-limit to 11 min
|
732 |
-
|
733 |
-
if(
|
734 |
-
$
|
735 |
-
if(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
736 |
}
|
737 |
}
|
738 |
-
//get the data
|
739 |
-
$exportdata=wassupDb::backup_table("$wassup_table","$wherecondition");
|
740 |
}else{
|
741 |
//failed export message
|
742 |
-
$
|
743 |
-
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
744 |
} //end if numrecords > 0
|
745 |
-
if
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
|
|
|
|
|
|
|
|
750 |
|
751 |
-
|
752 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
}else{
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
|
|
759 |
}
|
760 |
-
}
|
761 |
-
|
762 |
/** Turns off all error notices except fatal errors. */
|
763 |
function wassup_disable_errors(){
|
764 |
ini_set('error_reporting',E_ERROR);
|
@@ -798,11 +818,17 @@ function wassupPrepend() {
|
|
798 |
if(empty($wassup_options) || !$wassup_options->is_recording_active()){ //do nothing
|
799 |
return;
|
800 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
801 |
$wassup_table=$wassup_options->wassup_table;
|
802 |
$wassup_tmp_table=$wassup_table."_tmp";
|
803 |
$wscreen_res="";
|
804 |
//session tracking with cookie
|
805 |
-
$session_timeout=false;
|
806 |
$wassup_timer=0;
|
807 |
$wassup_id="";
|
808 |
$subsite_id=(!empty($GLOBALS['current_blog']->blog_id)?$GLOBALS['current_blog']->blog_id:0);
|
@@ -823,7 +849,7 @@ function wassupPrepend() {
|
|
823 |
//username in wassup cookie @since v1.8.3
|
824 |
if(!empty($cookie_data[5])) $cookieUser=$cookie_data[5];
|
825 |
if($wassup_timer <= 0 || $wassup_timer > 86400){
|
826 |
-
$session_timeout=true;
|
827 |
}
|
828 |
//don't reuse wassup_id when subsite changed
|
829 |
if(is_multisite()){
|
@@ -890,20 +916,20 @@ function wassupPrepend() {
|
|
890 |
//Exclude for logged-in user in admin area (unless session_timeout is set)
|
891 |
if(!is_admin() || empty($logged_user) || $session_timeout || $req_code !=200 || empty($wassup_id)){
|
892 |
//use 'send_headers' hook for feed, media, and files except when request is wp-admin which doesn't run this hook
|
893 |
-
if(is_feed() || preg_match('#[=/\?&](feed|atom)#',$urlRequested)>0){
|
894 |
if(is_feed() && !headers_sent()){
|
895 |
add_action('send_headers','wassupAppend');
|
896 |
}else{
|
897 |
wassupAppend($req_code);
|
898 |
}
|
899 |
-
}elseif(preg_match('/(\.(3gp|7z|f4[pv]|mp[34])(?:[\?#]|$))/i',$urlRequested)>0){
|
900 |
//this is audio, video, or archive file request
|
901 |
if(!is_admin() && !headers_sent()){
|
902 |
add_action('send_headers','wassupAppend');
|
903 |
}else{
|
904 |
wassupAppend($req_code);
|
905 |
}
|
906 |
-
}elseif(preg_match('/([^\?#&]+\.([a-z]{1,4}))(?:[\?#]|$)/i',$urlRequested)>0 && basename($urlRequested)!="robots.txt"){
|
907 |
//this is multimedia or specific file request
|
908 |
if(!is_admin() && !headers_sent()){
|
909 |
add_action('send_headers','wassupAppend');
|
@@ -966,7 +992,7 @@ function wassupAppend($req_code=0) {
|
|
966 |
//identify media requests
|
967 |
$is_media=false;
|
968 |
$fileRequested="";
|
969 |
-
if(preg_match(
|
970 |
$is_media=true;
|
971 |
if(ini_get('allow_url_fopen')) $fileRequested=$blogurl.$pcs[1];
|
972 |
}
|
@@ -1121,7 +1147,6 @@ function wassupAppend($req_code=0) {
|
|
1121 |
if(!empty($cookie_data[5])) $cookieUser = $cookie_data[5];
|
1122 |
}
|
1123 |
}
|
1124 |
-
//if(!empty($wassup_id)){ - test moved below
|
1125 |
//Get visitor ip/hostname from http_header
|
1126 |
if(!empty($cookieIP)){
|
1127 |
$ipAddress = $_SERVER['REMOTE_ADDR'];
|
@@ -1237,7 +1262,7 @@ function wassupAppend($req_code=0) {
|
|
1237 |
if($req_code==200 && !empty($fileRequested) && !file_exists($fileRequested)){
|
1238 |
$req_code=404;
|
1239 |
}
|
1240 |
-
}elseif(preg_match(
|
1241 |
//identify file requests
|
1242 |
if(ini_get('allow_url_fopen')) $fileRequested=$blogurl.$pcs[1];
|
1243 |
}
|
@@ -1280,7 +1305,7 @@ function wassupAppend($req_code=0) {
|
|
1280 |
//#4 Exclude users on exclusion list
|
1281 |
if (empty($wassup_options->wassup_exclude_user) || empty($logged_user) || preg_match('/(?:^|\s*,)\s*('.preg_quote($logged_user).')\s*(?:,|$)/',$wassup_options->wassup_exclude_user)==0){
|
1282 |
//'preg_match' replaces 'explode' for faster matching of users, url requests, and ip addresses @since v1.9
|
1283 |
-
|
1284 |
//#5 Exclude urls on exclusion list
|
1285 |
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){
|
1286 |
//url matching may be affected by html-encoding, url-encoding, query parameters, and labels on the url - so do those exclusions separately
|
@@ -1382,7 +1407,7 @@ function wassupAppend($req_code=0) {
|
|
1382 |
if($recent_hit[0]->agent == $userAgent || empty($recent_hit[0]->agent)){
|
1383 |
if($recent_hit[0]->urlrequested == $urlRequested || $recent_hit[0]->urlrequested == '[404] '.$urlRequested){
|
1384 |
$dup_urlrequest=1;
|
1385 |
-
}elseif($is_media && $req_code == 200 && preg_match(
|
1386 |
//exclude images/photos only after confirmation of other valid page hit by visitor
|
1387 |
$dup_urlrequest=1;
|
1388 |
}
|
@@ -1443,8 +1468,8 @@ function wassupAppend($req_code=0) {
|
|
1443 |
}
|
1444 |
}
|
1445 |
//#14 Exclude 404 hits unless 1st visit or malware attempt
|
1446 |
-
if($req_code == 200 || empty($recent_hit) || ($hackercheck && $spam
|
1447 |
-
//
|
1448 |
if($hackercheck && $spam==0 && $urlRequested !='/wp-login.php' && $urlRequested !='/wp-admin/admin-ajax.php'){
|
1449 |
$pcs=array();
|
1450 |
//identify malware
|
@@ -1533,11 +1558,10 @@ function wassupAppend($req_code=0) {
|
|
1533 |
}
|
1534 |
}
|
1535 |
//regular visitor attempts to access "upload" page is likely malware
|
1536 |
-
}elseif(preg_match('#[
|
1537 |
$spam=3;
|
1538 |
}elseif($req_code==404 && wIsAttack($urlRequested)){
|
1539 |
$spam=3;
|
1540 |
-
//v1.9.3 bugfix: moved referrer 'attack' test to #13 above..some referrer attacks were missed here
|
1541 |
}
|
1542 |
} //end if empty logged_user
|
1543 |
//retroactively update recent visitor records as spam/malware
|
@@ -1569,7 +1593,7 @@ function wassupAppend($req_code=0) {
|
|
1569 |
}
|
1570 |
}
|
1571 |
//# Some spiders, such as Yahoo and MSN, don't always give a unique useragent, so test against known hostnames/IP to identify these spiders
|
1572 |
-
$spider_hosts='/^((65\.55|207\.46)\.\d{3}.\d{1,3}|.*\.(crawl|yse)\.yahoo\.net|ycar\d+\.mobile\.[a-z0-9]{3}\.yahoo\.com|msnbot.*\.search\.msn\.com|crawl[0-9\-]+\.googlebot\.com|baiduspider[0-9\-]+\.crawl\.baidu\.com|(crawl(?:er)?|spider|robot)\-?\d*\..*)$/';
|
1573 |
//#Identify spiders from known spider domains
|
1574 |
if(empty($agent) || preg_match($spider_hosts,$hostname)>0 || stristr($agent,'unknown')!==false){
|
1575 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
@@ -1601,7 +1625,7 @@ function wassupAppend($req_code=0) {
|
|
1601 |
//no userAgent == spider
|
1602 |
$spider=$unknown_spider;
|
1603 |
}else{
|
1604 |
-
if(strlen($agent)<5 || empty($os) || preg_match(
|
1605 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
1606 |
if($wdebug_mode){
|
1607 |
if(is_admin() || headers_sent()){
|
@@ -1674,9 +1698,8 @@ function wassupAppend($req_code=0) {
|
|
1674 |
} //end if empty($spider)
|
1675 |
//identify spoofers of Google/Yahoo
|
1676 |
if(!empty($spider)){
|
1677 |
-
if(!empty($hostname) && preg_match('/^(googlebot|yahoo\!\
|
1678 |
$spider= __("Spoofer bot","wassup");
|
1679 |
-
//if($spam == "0") $spam=3;
|
1680 |
}
|
1681 |
//for late spider identification, update previous records
|
1682 |
if($wpageviews >1 && empty($recent_hit[0]->spider)){
|
@@ -1694,24 +1717,30 @@ function wassupAppend($req_code=0) {
|
|
1694 |
//## Check for referrer spam...
|
1695 |
if($wassup_options->wassup_spamcheck == 1 && $spam == 0 && !$goodbot){
|
1696 |
$spamComment = New wassup_checkComment;
|
1697 |
-
|
1698 |
-
if(!empty($referrer) && !$is_admin_login && stristr($referrer,$wpurl)!=$referrer && stristr($referrer,$blogurl)!=$referrer && $referrer!=$blogurl.$urlRequested){
|
1699 |
-
|
1700 |
-
|
1701 |
-
|
1702 |
-
|
1703 |
-
|
1704 |
-
|
1705 |
-
|
1706 |
-
|
1707 |
-
|
|
|
|
|
|
|
|
|
1708 |
}
|
1709 |
-
}
|
|
|
|
|
1710 |
//## Check for comment spammer...
|
1711 |
// No spam check on spiders unless there is a comment or forum page request...
|
1712 |
if ($spam == 0 && (empty($spider) || stristr($urlRequested,"comment")!== FALSE || stristr($urlRequested,"forum")!== FALSE || !empty($comment_user))) {
|
1713 |
//check for previous spammer detected by anti-spam plugin
|
1714 |
-
$spammerIP = $spamComment->isSpammer($IP);
|
1715 |
if($spammerIP > 0) $spam=1;
|
1716 |
//set as spam if both URL and referrer are "comment" and browser is obsolete or Opera
|
1717 |
if ($spam== 0 && $wassup_options->wassup_spam==1 && stristr($urlRequested,"comment")!== FALSE && stristr($referrer,"#comment")!==FALSE && (stristr($browser,"opera")!==FALSE || preg_match('/^(AOL|Netscape|IE)\s[1-6]$/',$browser)>0)) {
|
@@ -1755,32 +1784,16 @@ function wassupAppend($req_code=0) {
|
|
1755 |
//get language/locale
|
1756 |
if(empty($language) && !empty($recent_hit[0]->language)) $language=$recent_hit[0]->language;
|
1757 |
if($wdebug_mode){
|
1758 |
-
if(
|
1759 |
-
|
1760 |
-
echo $debug_output;
|
1761 |
-
echo "\nwassupappend-debug#7";
|
1762 |
-
$debug_output="";
|
1763 |
-
}
|
1764 |
-
echo "\n language=$language";
|
1765 |
-
}else{
|
1766 |
-
$debug_output .= "\n language=$language";
|
1767 |
-
}
|
1768 |
}
|
1769 |
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){
|
1770 |
//get language/locale info from hostname or referrer data
|
1771 |
$language=wGetLocale($language,$hostname,$referrer);
|
1772 |
}
|
1773 |
if($wdebug_mode){
|
1774 |
-
if(
|
1775 |
-
|
1776 |
-
echo $debug_output;
|
1777 |
-
echo "\nwassupappend-debug#8";
|
1778 |
-
$debug_output="";
|
1779 |
-
}
|
1780 |
-
echo "\n...language=$language (after geoip/wgetlocale)";
|
1781 |
-
}else{
|
1782 |
-
$debug_output .= " ...language=$language (after geoip/wgetlocale)";
|
1783 |
-
}
|
1784 |
}
|
1785 |
// get search engine and search keywords from referrer
|
1786 |
$searchengine="";
|
@@ -1860,7 +1873,8 @@ function wassupAppend($req_code=0) {
|
|
1860 |
$searchcountry=$match[3];
|
1861 |
}
|
1862 |
if(!empty($searchcountry) && $searchcountry!="us"){
|
1863 |
-
|
|
|
1864 |
if($language == "us" || empty($language) || $language=="en"){
|
1865 |
//make tld consistent with language
|
1866 |
if($searchcountry=="uk") $searchcountry="gb";
|
@@ -1938,12 +1952,7 @@ function wassupAppend($req_code=0) {
|
|
1938 |
}
|
1939 |
}
|
1940 |
if($wdebug_mode){
|
1941 |
-
if(
|
1942 |
-
if(!empty($debug_output)){
|
1943 |
-
echo $debug_output;
|
1944 |
-
echo "\nwassupappend-debug#9";
|
1945 |
-
$debug_output="";
|
1946 |
-
}
|
1947 |
if(!empty($wassup_recid)){
|
1948 |
echo "\nWassUp record data:";
|
1949 |
print_r($wassup_rec);
|
@@ -1963,72 +1972,72 @@ function wassupAppend($req_code=0) {
|
|
1963 |
}
|
1964 |
} //end if prefetch
|
1965 |
}elseif($wdebug_mode){
|
1966 |
-
if(
|
1967 |
else $debug_output .="\n #18 Excluded by: wp-content/plugins (after 404)";
|
1968 |
} //end if !wp-content/plugins
|
1969 |
}elseif($wdebug_mode){
|
1970 |
-
if(
|
1971 |
else $debug_output .="\n #17 Excluded by: wassup_spam";
|
1972 |
} //end if $spam == 0
|
1973 |
}elseif($wdebug_mode){
|
1974 |
-
if(
|
1975 |
else $debug_output .="\n #16 Excluded by: wassup_spider";
|
1976 |
} //end if wassup_spider
|
1977 |
}elseif($wdebug_mode){
|
1978 |
-
if(
|
1979 |
else $debug_output .="\n #15 Excluded by: wassup_hack";
|
1980 |
} //end if wassup_hack
|
1981 |
}elseif($wdebug_mode){
|
1982 |
-
if(
|
1983 |
else $debug_output .="\n #14 Excluded by: is_404";
|
1984 |
} //end if !is_404
|
1985 |
}elseif($wdebug_mode){
|
1986 |
-
if(
|
1987 |
else $debug_output .="\n #13 Excluded by: !wp_admin (ajax)";
|
1988 |
} //end if !wp_admin (ajax) && recent_hit
|
1989 |
}elseif($wdebug_mode){
|
1990 |
-
if(
|
1991 |
else $debug_output .="\n #12 Excluded by: dup_urlrequest";
|
1992 |
} //end if dup_urlrequest == 0
|
1993 |
}elseif($wdebug_mode){
|
1994 |
-
if(
|
1995 |
else $debug_output .="\n #11 Excluded by: wassup_attack";
|
1996 |
} //end if wassup_attack
|
1997 |
}elseif($wdebug_mode){
|
1998 |
-
if(
|
1999 |
else $debug_output .="\n #10 Excluded by: wassup_loggedin";
|
2000 |
} //end if wassup_loggedin
|
2001 |
}elseif($wdebug_mode){
|
2002 |
-
if(
|
2003 |
else $debug_output .="\n #9 Excluded by: wp-content/themes";
|
2004 |
} //end if !themes
|
2005 |
}elseif($wdebug_mode){
|
2006 |
-
if(
|
2007 |
else $debug_output .="\n #8 Excluded by: wp-content/plugins (or hostname wildcard)";
|
2008 |
} //end if !plugins
|
2009 |
}elseif($wdebug_mode){
|
2010 |
-
if(
|
2011 |
else $debug_output .="\n #7 Excluded by: exclude_host (or IP wildcard)";
|
2012 |
} //end if wassup_exclude_host
|
2013 |
}elseif($wdebug_mode){
|
2014 |
-
if(
|
2015 |
else $debug_output .="\n #6 Excluded by: wassup_exclude";
|
2016 |
} //end if wassup_exclude
|
2017 |
}elseif($wdebug_mode){
|
2018 |
-
if(
|
2019 |
else $debug_output .="\n #5 Excluded by: exclude_url";
|
2020 |
} //end if wassup_exclude_url
|
2021 |
}elseif($wdebug_mode){
|
2022 |
-
if(
|
2023 |
else $debug_output .="\n #4 Excluded by: exclude_user";
|
2024 |
} //end if wassup_exclude_user
|
2025 |
}elseif($wdebug_mode){
|
2026 |
-
if(
|
2027 |
else $debug_output .="\n #3 Excluded by: is_admin";
|
2028 |
} //end if !is_admin
|
2029 |
} //end if wp-cron.php?doing_wp_cron===FALSE //#2
|
2030 |
}elseif($wdebug_mode){
|
2031 |
-
if(
|
2032 |
else $debug_output .="\n #1 Excluded by: is_admin_login";
|
2033 |
} //end if !is_admin_login
|
2034 |
|
@@ -2044,7 +2053,7 @@ function wassupAppend($req_code=0) {
|
|
2044 |
}
|
2045 |
if(is_numeric($result)) $in_temp=(int)$result;
|
2046 |
if($wdebug_mode){
|
2047 |
-
if(
|
2048 |
else $debug_output .="\nin_temp=".$result;
|
2049 |
}
|
2050 |
//add new temp record
|
@@ -2158,18 +2167,18 @@ function wassupAppend($req_code=0) {
|
|
2158 |
wp_schedule_single_event(time()+40,'wassup_scheduled_dbtasks',$args);
|
2159 |
}
|
2160 |
if($wdebug_mode){
|
2161 |
-
if(
|
2162 |
echo "\nWassup scheduled tasks:";
|
2163 |
print_r($wassup_dbtask);
|
2164 |
}
|
2165 |
}
|
2166 |
}
|
2167 |
if($wdebug_mode){ //close comment tag to hide debug data from visitors
|
2168 |
-
if(
|
2169 |
echo "\n--> \n";
|
2170 |
}else{
|
2171 |
$debug_output .= "<br />\n--> \n";
|
2172 |
-
//add debug output to wp_footer output - TODO
|
2173 |
$expire=time()+180;
|
2174 |
$wassup_key=wassup_clientIP($_SERVER['REMOTE_ADDR']);
|
2175 |
wassupDb::update_wassupmeta($wassup_key,'_debug_output',$expire,$debug_output);
|
@@ -2350,7 +2359,7 @@ function wSeReferer($ref = false) {
|
|
2350 |
return false;
|
2351 |
}
|
2352 |
//Check against Google, Yahoo, MSN, Ask and others
|
2353 |
-
if(preg_match(
|
2354 |
$SeDomain = trim(strtolower($pcs[1]));
|
2355 |
if ($pcs[2] == "encquery") {
|
2356 |
$SeQuery = " *".__("encrypted search","wassup")."* ";
|
@@ -2359,14 +2368,14 @@ function wSeReferer($ref = false) {
|
|
2359 |
}
|
2360 |
|
2361 |
//Check for search engines that show query as a url with 'search' and keywords in path (ex: Dogpile.com)
|
2362 |
-
}
|
2363 |
$SeDomain = trim(strtolower($pcs[1]));
|
2364 |
$SeQuery = $pcs[3];
|
2365 |
if (!empty($pcs[4])) {
|
2366 |
$SePos=(int)$pcs[4];
|
2367 |
}
|
2368 |
//Check for search engines that show query as a url with 'search' in domain and keywords in path (ex: twitnitsearch.appspot.com)
|
2369 |
-
}
|
2370 |
$SeDomain = trim(strtolower($pcs[1]));
|
2371 |
$SeQuery = $pcs[3];
|
2372 |
if (!empty($pcs[4])) {
|
@@ -2386,7 +2395,7 @@ function wSeReferer($ref = false) {
|
|
2386 |
}
|
2387 |
}
|
2388 |
if (!isset($SePos)) {
|
2389 |
-
if
|
2390 |
$SePos = $pcs[2];
|
2391 |
} else {
|
2392 |
$SePos = 1;
|
@@ -2794,7 +2803,7 @@ function wGetSE($referrer = null){
|
|
2794 |
//search engine or key is not in list, so check for search phrase instead
|
2795 |
if (empty($search_phrase) && !empty($referrer)) {
|
2796 |
//Check for general search phrases
|
2797 |
-
if
|
2798 |
if (empty($searchengine)) $searchengine=trim(strtolower($pcs[1]));
|
2799 |
if ($pcs[2] =="encquery"){
|
2800 |
$search_phrase=" *".__("encrypted search","wassup")."* ";
|
@@ -2802,14 +2811,14 @@ function wGetSE($referrer = null){
|
|
2802 |
$search_phrase = $pcs[3];
|
2803 |
}
|
2804 |
//Check separately for queries that use nonstandard search variable to avoid retrieving values like "p=parameter" when "q=query" exists
|
2805 |
-
}
|
2806 |
if (empty($searchengine)) $searchengine = trim(strtolower($pcs[1]));
|
2807 |
$search_phrase = $pcs[3];
|
2808 |
}
|
2809 |
} //end if search_phrase
|
2810 |
//do a separate check for page number, if not found above
|
2811 |
if (!empty($search_phrase)) {
|
2812 |
-
if
|
2813 |
$searchpage = $pcs[2];
|
2814 |
}
|
2815 |
}
|
@@ -2909,13 +2918,14 @@ function wGetSpider($agent="",$hostname="", $browser=""){
|
|
2909 |
$pcs=array();
|
2910 |
//identify obvious script injection bots
|
2911 |
if(!empty($ua)){
|
|
|
2912 |
if(stristr($ua,'location.href')!==FALSE){
|
2913 |
$crawlertype="H";
|
2914 |
$crawler="Script Injection bot";
|
2915 |
-
}elseif(preg_match('/(<|<
|
2916 |
$crawlertype="H";
|
2917 |
$crawler="Script Injection bot";
|
2918 |
-
}elseif(preg_match('/(<|<
|
2919 |
$crawlertype="H";
|
2920 |
$crawler="Script Injection bot";
|
2921 |
}elseif(preg_match('/select.*(\s|%20|\+|%#32;)from(\s|%20|\+|%#32;)wp_/i',$ua)>0){
|
@@ -2952,13 +2962,16 @@ function wGetSpider($agent="",$hostname="", $browser=""){
|
|
2952 |
$crawler="Baiduspider";
|
2953 |
$crawlertype="R";
|
2954 |
|
|
|
|
|
|
|
2955 |
}
|
2956 |
} //end if $hostname
|
2957 |
$pcs=array();
|
2958 |
$pcs2=array();
|
2959 |
if(empty($crawler)){
|
2960 |
// check for crawlers that identify themselves clearly in their user agent string with words like bot, spider, and crawler
|
2961 |
-
if ((!empty($ua) && preg_match(
|
2962 |
if(!empty($pcs[1])) $crawler=$pcs[1];
|
2963 |
elseif(!empty($pcs2[1])) $crawler="unknown_spider";
|
2964 |
$crawlertype="R";
|
@@ -2988,7 +3001,7 @@ function wGetSpider($agent="",$hostname="", $browser=""){
|
|
2988 |
}
|
2989 |
}
|
2990 |
//get crawler info. from a known list of bots and feedreaders that don't list their names first in UA string.
|
2991 |
-
//Note: spaces
|
2992 |
$crawler=trim($crawler);
|
2993 |
if(empty($crawler) || $crawler=="unknown_spider"){
|
2994 |
$uagent=str_replace(" ","",$ua);
|
@@ -3300,7 +3313,7 @@ function wGetSpider($agent="",$hostname="", $browser=""){
|
|
3300 |
if(empty($crawler)){
|
3301 |
$pcs=array();
|
3302 |
//Assume first word in useragent is crawler name
|
3303 |
-
if(preg_match(
|
3304 |
if(strlen($pcs[1])>1 && $pcs[1]!="Mozilla"){
|
3305 |
$crawler=$pcs[1];
|
3306 |
}
|
@@ -3309,7 +3322,7 @@ function wGetSpider($agent="",$hostname="", $browser=""){
|
|
3309 |
//if (empty($crawler) && !empty($browser)) $crawler = $browser;
|
3310 |
}
|
3311 |
//#do a feed check and get feed subcribers, if available
|
3312 |
-
if(preg_match(
|
3313 |
// It's a feedreader with some subscribers
|
3314 |
$feed=$subscriber[1];
|
3315 |
if(empty($crawler) && empty($browser)){
|
@@ -3349,7 +3362,7 @@ function wGetLocale($language="",$hostname="",$referrer="") {
|
|
3349 |
list($language)=explode(";",$langarray[0]);
|
3350 |
}
|
3351 |
//use 2-digit top-level domains (TLD) for country code, if any
|
3352 |
-
if (strlen($hostname)>2 && preg_match(
|
3353 |
$country=strtolower(substr($hostname,-2));
|
3354 |
//ignore domains commonly used for media
|
3355 |
if($country == "tv" || $country == "fm") $country="";
|
@@ -3404,24 +3417,23 @@ function wGetLocale($language="",$hostname="",$referrer="") {
|
|
3404 |
}
|
3405 |
//Replace language with locale for widely spoken languages
|
3406 |
if(!empty($country)){
|
3407 |
-
if(empty($language) || $language=="us" || preg_match(
|
3408 |
$language=$country;
|
3409 |
}elseif($language=="es"){
|
3410 |
//for Central/South American locales
|
3411 |
$language=$country;
|
3412 |
}
|
3413 |
}
|
3414 |
-
if(!empty($language) && preg_match(
|
3415 |
$clocale=$language;
|
3416 |
}
|
3417 |
return $clocale;
|
3418 |
} //end function wGetLocale
|
3419 |
|
3420 |
/**
|
3421 |
-
* Check referrer string and referrer host (or hostname) for
|
3422 |
-
*
|
3423 |
-
* -checks referer host against know list of
|
3424 |
-
* -checks referrer string for spammer content (faked referrer).
|
3425 |
* @param string $referrer, string $hostname
|
3426 |
* @return boolean
|
3427 |
*/
|
@@ -3439,6 +3451,7 @@ function wGetSpamRef($referrer,$hostname="") {
|
|
3439 |
if(isset($rurl['host'])){
|
3440 |
$referrer_host=$rurl['host'];
|
3441 |
$thissite=parse_url(get_option('home'));
|
|
|
3442 |
//exclude current site as referrer
|
3443 |
if(isset($thissite['host']) && $referrer_host == $thissite['host']){
|
3444 |
$referrer_host="";
|
@@ -3452,6 +3465,8 @@ function wGetSpamRef($referrer,$hostname="") {
|
|
3452 |
elseif(preg_match('#(\.|/)youtu.be/[0-9a-z]+#i',$ref)>0) $badhost=true;
|
3453 |
//some facebook links in referrer are faked
|
3454 |
elseif(preg_match('#(\.|/)facebook\.com\/ASeaOfSins$#',$ref)>0) $badhost=true;
|
|
|
|
|
3455 |
}
|
3456 |
} else { //faked referrer string
|
3457 |
$badhost=true;
|
@@ -3465,26 +3480,27 @@ function wGetSpamRef($referrer,$hostname="") {
|
|
3465 |
} //end elseif
|
3466 |
//#Assume any referrer name similar to "viagra/zanax/.." is spam and mark as such...
|
3467 |
if (!$badhost && !empty($referrer_host)) {
|
3468 |
-
$lines = array(
|
3469 |
-
|
3470 |
-
|
3471 |
-
|
3472 |
-
|
3473 |
-
|
3474 |
-
|
3475 |
-
|
3476 |
-
|
3477 |
-
|
3478 |
-
|
3479 |
-
|
3480 |
-
|
3481 |
-
|
3482 |
-
|
3483 |
-
|
3484 |
-
"zoloft", "zovirax", "zanax"
|
3485 |
-
);
|
3486 |
foreach ($lines as $badreferrer) {
|
3487 |
-
if (strstr($referrer_host
|
|
|
|
|
|
|
3488 |
$badhost=true;
|
3489 |
break 1;
|
3490 |
}
|
@@ -3502,7 +3518,7 @@ function wGetSpamRef($referrer,$hostname="") {
|
|
3502 |
} //end wGetSpamRef
|
3503 |
|
3504 |
/**
|
3505 |
-
* Compare a hostname (and referrer
|
3506 |
* @param string(2)
|
3507 |
* @return boolean
|
3508 |
* @since v1.9
|
@@ -3516,7 +3532,10 @@ function wassup_badhost_lookup($referrer_host,$hostname="") {
|
|
3516 |
$lines = array( '209\.29\.25\.180',
|
3517 |
'78\.185\.148\.185',
|
3518 |
'93\.90\.243\.63',
|
|
|
|
|
3519 |
'amsterjob\.com',
|
|
|
3520 |
'burger\-imperia\.com',
|
3521 |
'buttons\-for\-website\.com',
|
3522 |
'canadapharm\.atwebpages\.com',
|
@@ -3554,6 +3573,7 @@ function wassup_badhost_lookup($referrer_host,$hostname="") {
|
|
3554 |
'gameskillinggames\.net',
|
3555 |
'gardenactivities\.webnode\.com',
|
3556 |
'globalringtones\.net',
|
|
|
3557 |
'gossipchips\.com',
|
3558 |
'gskstudio\.com',
|
3559 |
'hearcam\.org',
|
@@ -3610,6 +3630,7 @@ function wassup_badhost_lookup($referrer_host,$hostname="") {
|
|
3610 |
'rufights\.com',
|
3611 |
'scripted\.com',
|
3612 |
'seoindiawizard\.com',
|
|
|
3613 |
'singlesvacationspackages\.com',
|
3614 |
'sitetalk\-revolution\.com',
|
3615 |
'smartforexsignal\.com',
|
@@ -3621,6 +3642,7 @@ function wassup_badhost_lookup($referrer_host,$hostname="") {
|
|
3621 |
'thebestweddingparty\.com',
|
3622 |
'thik\-chik\.com',
|
3623 |
'thisweekendsmovies\.com',
|
|
|
3624 |
'uggbootsnewest\.net',
|
3625 |
'uggsmencheap\.com',
|
3626 |
'uggsnewest\.com',
|
@@ -3631,6 +3653,7 @@ function wassup_badhost_lookup($referrer_host,$hostname="") {
|
|
3631 |
'[a-z\-\.]+vigra\-buy\.info',
|
3632 |
'vitamin\-d\-deficiency\-symptoms\.com',
|
3633 |
'vpn\-privacy\.org',
|
|
|
3634 |
'watchstock\.com',
|
3635 |
'web\-promotion\-services\.net',
|
3636 |
'wh\-tech\.com',
|
@@ -3712,161 +3735,29 @@ function wassup_urlshortener_lookup($urlhost){
|
|
3712 |
* @return string
|
3713 |
*/
|
3714 |
function wassup_get_clientAddr($ipAddress=""){
|
3715 |
-
$
|
3716 |
-
$hostname="";
|
3717 |
-
$IP="";
|
3718 |
-
//Get the visitor IP from Http_header
|
3719 |
-
if(empty($ipAddress)){
|
3720 |
-
$ipAddress=(isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:"");
|
3721 |
-
}
|
3722 |
-
$IPlist=$ipAddress;
|
3723 |
-
$proxylist=$ipAddress;
|
3724 |
-
$serverAddr=(isset($_SERVER['SERVER_ADDR'])?$_SERVER['SERVER_ADDR']:"");
|
3725 |
-
//for computers behind proxy servers:
|
3726 |
-
//if(!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) $serverAddr=$_SERVER['HTTP_X_FORWARDED_HOST'];
|
3727 |
-
//elseif(!empty($_SERVER['HTTP_X_FORWARDED_SERVER'])) $serverAddr=$_SERVER['HTTP_X_FORWARDED_SERVER'];
|
3728 |
-
//
|
3729 |
-
//check that the client IP is not equal to the host server IP
|
3730 |
-
if(isset($_SERVER['HTTP_CLIENT_IP']) && $serverAddr!=$_SERVER['HTTP_CLIENT_IP'] && $ipAddress!=$_SERVER['HTTP_CLIENT_IP']){
|
3731 |
-
if(strpos($proxylist,$_SERVER["HTTP_CLIENT_IP"])===false){
|
3732 |
-
$IPlist=$_SERVER['HTTP_CLIENT_IP'].",".$proxylist;
|
3733 |
-
$proxylist=$IPlist;
|
3734 |
-
}
|
3735 |
-
$ipAddress=$_SERVER['HTTP_CLIENT_IP'];
|
3736 |
-
}
|
3737 |
-
if(isset($_SERVER['HTTP_X_REAL_IP']) && $serverAddr!=$_SERVER['HTTP_X_REAL_IP'] && $ipAddress!=$_SERVER['HTTP_X_REAL_IP']){
|
3738 |
-
if(strpos($proxylist,$_SERVER["HTTP_X_REAL_IP"])===false){
|
3739 |
-
$IPlist=$_SERVER['HTTP_X_REAL_IP'].",".$proxylist;
|
3740 |
-
$proxylist=$IPlist;
|
3741 |
-
}
|
3742 |
-
$ipAddress=$_SERVER['HTTP_X_REAL_IP'];
|
3743 |
-
}
|
3744 |
-
//check for IP addresses from Cloudflare CDN-hosted sites
|
3745 |
-
if(isset($_SERVER['HTTP_CF_CONNECTING_IP']) && $serverAddr!=$_SERVER['HTTP_CF_CONNECTING_IP'] && $ipAddress!=$_SERVER['HTTP_CF_CONNECTING_IP']){
|
3746 |
-
if(strpos($proxylist,$_SERVER["HTTP_CF_CONNECTING_IP"])===false){
|
3747 |
-
$IPlist=$_SERVER['HTTP_CF_CONNECTING_IP'].",".$proxylist;
|
3748 |
-
$proxylist=$IPlist;
|
3749 |
-
}
|
3750 |
-
$ipAddress=$_SERVER['HTTP_CF_CONNECTING_IP'];
|
3751 |
-
}
|
3752 |
-
//check for proxy addresses
|
3753 |
-
if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]) && $serverAddr!=$_SERVER['HTTP_X_FORWARDED_FOR'] && $ipAddress!=$_SERVER['HTTP_X_FORWARDED_FOR']){
|
3754 |
-
if(strpos($proxylist,$_SERVER['HTTP_X_FORWARDED_FOR'])===false){
|
3755 |
-
$IPlist=$_SERVER['HTTP_X_FORWARDED_FOR'].",".$proxylist;
|
3756 |
-
$proxylist=$IPlist;
|
3757 |
-
}
|
3758 |
-
$ipAddress=$_SERVER['HTTP_X_FORWARDED_FOR'];
|
3759 |
-
}
|
3760 |
-
if(!empty($_SERVER["HTTP_X_FORWARDED"]) && $serverAddr!=$_SERVER["HTTP_X_FORWARDED"] && $ipAddress!=$_SERVER['HTTP_X_FORWARDED']){
|
3761 |
-
if(strpos($proxylist,$_SERVER['HTTP_X_FORWARDED'])===false){
|
3762 |
-
$IPlist=$_SERVER['HTTP_X_FORWARDED'].",".$proxylist;
|
3763 |
-
$proxylist=$IPlist;
|
3764 |
-
}
|
3765 |
-
$ipAddress=$_SERVER['HTTP_X_FORWARDED'];
|
3766 |
-
}
|
3767 |
-
//try get valid IP
|
3768 |
-
$IP = wValidIP($ipAddress);
|
3769 |
-
if(empty($IP) && $ipAddress!=$proxylist){
|
3770 |
-
$proxylist=preg_replace('/(^|[^0-9\.])'.preg_quote($ipAddress).'($|[^0-9\.])/','',$IPlist);
|
3771 |
-
$IP=wValidIP($proxylist);
|
3772 |
-
}
|
3773 |
-
if(!empty($IP)){
|
3774 |
-
$p=strpos($IPlist,$IP)+strlen($IP)+1;
|
3775 |
-
if($p < strlen($IPlist)) $proxylist=substr($IPlist,$p);
|
3776 |
-
else $proxylist="";
|
3777 |
-
}
|
3778 |
-
//check client hostname for known proxy gateways
|
3779 |
-
if(!empty($IP)){
|
3780 |
-
$hostname=wassup_get_hostname($IP);
|
3781 |
-
if(preg_match('/(cloudflare\.|cache|gateway|proxy|unknown$|localhost$|\.local(?:domain)?$)/',$hostname)>0){
|
3782 |
-
$ip1=$IP;
|
3783 |
-
if(!empty($proxylist)) $IP=wValidIP($proxylist);
|
3784 |
-
if(!empty($IP)){
|
3785 |
-
$p=strpos($IPlist,$IP)+strlen($IP)+1;
|
3786 |
-
if($p < strlen($IPlist)) $proxylist=substr($IPlist,$p);
|
3787 |
-
else $proxylist="";
|
3788 |
-
}else{
|
3789 |
-
$IP=$ip1;
|
3790 |
-
}
|
3791 |
-
}
|
3792 |
-
if(!empty($proxylist)) $proxy=wValidIP($proxylist);
|
3793 |
-
if(!empty($proxy)) $ipAddress=$proxy.','.$IP;
|
3794 |
-
else $ipAddress=$IP;
|
3795 |
-
}
|
3796 |
-
return $ipAddress;
|
3797 |
} //end wassup_get_clientAddr
|
3798 |
|
3799 |
// lookup the hostname from an ip address via cache or via gethostbyaddr command @since v1.9
|
3800 |
function wassup_get_hostname($IP=""){
|
3801 |
-
|
3802 |
-
//first check for cached hostname
|
3803 |
-
$hostname=wassupDb::get_wassupmeta($IP,'hostname');
|
3804 |
-
if(empty($hostname)){
|
3805 |
-
if($IP=="127.0.0.1" || $IP=='::1' || $IP=='0:0:0:0:0:0:0:1'){
|
3806 |
-
$hostname="localhost";
|
3807 |
-
}elseif($IP=="0.0.0.0" || $IP=='::' || $IP=='0:0:0:0:0:0:0:0'){
|
3808 |
-
$hostname="unknown";
|
3809 |
-
}else{
|
3810 |
-
$hostname=@gethostbyaddr($IP);
|
3811 |
-
if(!empty($hostname) && $hostname!=$IP && $hostname!="localhost" && $hostname!="unknown"){
|
3812 |
-
$meta_key='hostname';
|
3813 |
-
$meta_value=$hostname;
|
3814 |
-
$expire=time()+48*3600; //cache for 2 days
|
3815 |
-
$cache_id=wassupDb::update_wassupmeta($IP,$meta_key,$meta_value,$expire);
|
3816 |
-
}
|
3817 |
-
}
|
3818 |
-
}
|
3819 |
-
return $hostname;
|
3820 |
} //end wassup_get_hostname
|
3821 |
|
3822 |
// Return a single ip (the client IP) from a comma-separated IP address with no ip validation. @since v1.9
|
3823 |
function wassup_clientIP($ipAddress){
|
3824 |
-
$
|
3825 |
-
|
3826 |
-
$ip_proxy=strpos($ipAddress,",");
|
3827 |
-
//if proxy, get 2nd ip...
|
3828 |
-
if($ip_proxy!==false){
|
3829 |
-
$IP=substr($ipAddress,(int)$ip_proxy+1);
|
3830 |
-
}else{
|
3831 |
-
$IP=$ipAddress;
|
3832 |
-
}
|
3833 |
-
}
|
3834 |
-
return $IP;
|
3835 |
}
|
3836 |
|
3837 |
//return 1st valid IP address in a comma-separated list of IP addresses -Helene D. 2009-03-01
|
3838 |
function wValidIP($multiIP) {
|
3839 |
-
|
3840 |
-
|
3841 |
-
$goodIP=false;
|
3842 |
-
//look through forwarded list for a good IP
|
3843 |
-
foreach ($ips as $ipa) {
|
3844 |
-
$IP=trim(strtolower($ipa));
|
3845 |
-
//v1.9.3 bugfix: exclude badly formatted ip's
|
3846 |
-
if(!empty($IP)){
|
3847 |
-
//exclude dummy IPv4 addresses
|
3848 |
-
if(preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/',$IP)>0){
|
3849 |
-
if($IP!="0.0.0.0" && $IP!="127.0.0.1" && substr($IP,0,8)!="192.168." && substr($IP,0,3)!="10." && substr($IP,0,4)!="172." && substr($IP,0,7)!='192.18.' && substr($IP,0,4)!='255.' && substr($IP,-4)!='.255'){
|
3850 |
-
$goodIP=$IP;
|
3851 |
-
}elseif(substr($IP,0,4)=="172." && preg_match('/172\.(1[6-9]|2[0-9]|3[0-1])\./',$IP)===false){
|
3852 |
-
$goodIP=$IP;
|
3853 |
-
}
|
3854 |
-
//exclude dummy IPv6 addresses
|
3855 |
-
}elseif(preg_match('/^(?:((?:[0-9a-f]{1,4}\:){1,}(?:\:?[0-9a-f]{1,4}){1,})|(\:\:(?:[0-9a-f]{1,4})?))$/i',$IP)>0){
|
3856 |
-
$ipv6=str_replace("0000","0",$IP);
|
3857 |
-
if($ipv6!='::' && $ipv6!='0:0:0:0:0:0:0:0' && $ipv6!='::1' && $ipv6!='0:0:0:0:0:0:0:1' && substr($ipv6,0,2)!='fd' && substr($ipv6,0,5)!='ff01:' && substr($ipv6,0,5)!='ff02:' && substr($ipv6,0,5)!='2001:'){
|
3858 |
-
$goodIP=$IP;
|
3859 |
-
}
|
3860 |
-
}
|
3861 |
-
if(!empty($goodIP)) break;
|
3862 |
-
}
|
3863 |
-
}
|
3864 |
-
return $goodIP;
|
3865 |
} //end function wValidIP
|
3866 |
|
3867 |
/**
|
3868 |
* Add Wassup meta tag and javascripts to html document head
|
3869 |
-
* -add
|
3870 |
*/
|
3871 |
function wassup_head() {
|
3872 |
global $wassup_options, $wscreen_res;
|
@@ -3887,19 +3778,13 @@ function wassup_head() {
|
|
3887 |
echo "\n";?>
|
3888 |
<script type="text/javascript">
|
3889 |
//<![CDATA[
|
3890 |
-
|
|
|
3891 |
if(screen_res==" x ") screen_res=window.screen.width+" x "+window.screen.height;
|
3892 |
if(screen_res==" x ") screen_res=screen.availWidth+" x "+screen.availHeight;
|
3893 |
-
if(screen_res!=" x "){<?php
|
3894 |
-
|
3895 |
-
|
3896 |
-
if(defined('COOKIEPATH'))$cookiepath=COOKIEPATH;
|
3897 |
-
else $cookiepath="/";
|
3898 |
-
}else{
|
3899 |
-
$curl=parse_url(get_option('home'));
|
3900 |
-
$cookiedomain=preg_replace('/^www\./','',$curl['host']);
|
3901 |
-
$cookiepath=$curl['path'];
|
3902 |
-
}?>document.cookie = "wassup_screen_res<?php echo $sessionhash;?>=" + encodeURIComponent(screen_res)+ "; path=<?php echo $cookiepath.'; domain='.$cookiedomain;?>";}
|
3903 |
//]]>
|
3904 |
</script><?php
|
3905 |
}
|
@@ -3907,24 +3792,19 @@ function wassup_head() {
|
|
3907 |
|
3908 |
/**
|
3909 |
* Output Wassup tag and javascripts in html document footer.
|
3910 |
-
* -
|
3911 |
* -put a timestamp in page footer as page caching test
|
3912 |
* -output any stored debug data
|
3913 |
*/
|
3914 |
function wassup_foot() {
|
3915 |
global $wassup_options, $wscreen_res, $wdebug_mode;
|
3916 |
-
//
|
3917 |
$sessionhash=$wassup_options->whash;
|
3918 |
if(empty($wscreen_res) && !isset($_COOKIE['wassup_screen_res'.$sessionhash])){
|
3919 |
$ua=(!empty($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:"");
|
3920 |
if(strpos($ua,'MSIE')>0 || strpos($ua,'rv:11')>0 || strpos($ua,'Edge/')>0 || stristr($_SERVER['REQUEST_URI'],'login.php')!==false){
|
3921 |
echo "\n";?>
|
3922 |
-
<script
|
3923 |
-
//<![CDATA[
|
3924 |
-
var screen_res = screen.width + " x " + screen.height;
|
3925 |
-
if (screen_res!=" x "){document.cookie = "wassup_screen_res<?php echo $sessionhash;?>=" + encodeURIComponent(screen_res)+ "; path=/; domain=" + document.domain;}
|
3926 |
-
//]]>
|
3927 |
-
</script>
|
3928 |
<?php
|
3929 |
} //end if MSIE
|
3930 |
} //end if 'wscreen_res'
|
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.4
|
7 |
Author: Michele Marcucci, Helene Duncker
|
8 |
Author URI: http://www.michelem.org/
|
9 |
Text Domain: wassup
|
49 |
*/
|
50 |
function wassup_init($init_settings=false){
|
51 |
global $wp_version,$wassup_options,$wdebug_mode;
|
52 |
+
|
53 |
//define wassup globals & constants
|
54 |
if(!defined('WASSUPVERSION')){
|
55 |
+
define('WASSUPVERSION','1.9.4');
|
56 |
define('WASSUPDIR',dirname(preg_replace('/\\\\/','/',__FILE__)));
|
57 |
}
|
58 |
//turn on debugging (global)...Use cautiously! Will display errors from all plugins, not just WassUp
|
59 |
$wdebug_mode=false;
|
60 |
if(defined('WP_DEBUG') && WP_DEBUG==true) $wdebug_mode=true;
|
61 |
if($wdebug_mode){
|
62 |
+
$active_plugins=maybe_serialize(get_option('active_plugins'));
|
63 |
//turn off debug mode if this is ajax action request @since v1.9.2
|
64 |
if((!empty($_REQUEST['action']) && isset($_REQUEST['wajax'])) || (defined('DOING_AJAX') && DOING_AJAX)){
|
65 |
$wdebug_mode=false;
|
66 |
@wassup_disable_errors();
|
67 |
+
}elseif(isset($_REQUEST['wc-ajax']) && preg_match('#/woocommerce\.php#',$active_plugins)>0){ //woocommerce ajax
|
68 |
+
$wdebug_mode=false;
|
69 |
+
@wassup_disable_errors();
|
70 |
}else{
|
71 |
+
wassup_enable_errors();
|
72 |
if(headers_sent()){
|
73 |
//an error was likely displayed to screen
|
74 |
echo "\n".'<!-- wassup_init start -->';
|
75 |
}
|
|
|
76 |
}
|
77 |
}
|
78 |
//load language translation
|
83 |
if(@is_readable($moFile)){
|
84 |
load_textdomain('wassup',$moFile);
|
85 |
}elseif(strlen($current_locale)<6){
|
86 |
+
//try load translation file with language code x2 as locale @since v1.9.3
|
87 |
$lang_only=substr($current_locale,0,2).'_'.strtoupper(substr($current_locale,0,2));
|
88 |
if($lang_only != $current_locale && preg_match('/^[a-z]{2}_[A-Z]{2}$/',$lang_only)>0){
|
89 |
$moFile=WASSUPDIR."/language/".$lang_only."mo";
|
98 |
$is_compatible=true;
|
99 |
if(version_compare($wp_version,'4.5','<') || version_compare($php_vers,'5.2','<')){
|
100 |
include_once(WASSUPDIR.'/lib/compatibility.php');
|
101 |
+
$is_compatible=wassup_check_compatibility();
|
102 |
}
|
103 |
if($is_compatible){
|
104 |
if(!class_exists('wassupOptions')) require_once(WASSUPDIR.'/lib/wassup.class.php');
|
294 |
}
|
295 |
$wassup_options->wassup_active=$active_status;
|
296 |
$wassup_options->saveSettings();
|
297 |
+
|
298 |
//schedule regular cleanup of temp recs @since v1.9
|
299 |
if(!empty($active_status)) wassup_cron_startup();
|
300 |
}else{
|
418 |
delete_usermeta($current_user->ID,$wpdb->prefix.'_wassup_settings');
|
419 |
}
|
420 |
} //end foreach
|
421 |
+
//lastly, delete network settings & users' settings
|
422 |
if($network_wide){
|
423 |
restore_current_blog();
|
424 |
delete_site_option('wassup_network_settings');
|
467 |
* Perform plugin tasks for before http headers are sent.
|
468 |
* -block obvious xss and sql injection attempts on Wassup itself
|
469 |
* -initialize new network subsite settings (via 'wassup_init'), if any
|
470 |
+
* -setup maintenance tasks for wp-ajax/wp_cron/wp_login hook actions
|
471 |
* -start wassup tracking
|
472 |
*/
|
473 |
function wassup_preload(){
|
475 |
//block any obvious sql injection attempts involving WassUp
|
476 |
$request_uri=$_SERVER['REQUEST_URI'];
|
477 |
if(!$request_uri) $request_uri=$_SERVER['SCRIPT_NAME']; // IIS
|
|
|
478 |
if(stristr($request_uri,'wassup')!==false && strstr($request_uri,'err=wassup403')===false){
|
479 |
$error_msg="";
|
480 |
+
//don't test logged-in user requests
|
481 |
if(!is_user_logged_in()){
|
482 |
if(preg_match('/(<|<?|�*60;?|%3C)scr(ipt|[^0-9a-z\-_])/i',$request_uri)>0){
|
483 |
$error_msg=__('Bad request!','wassup');
|
529 |
if(function_exists('wassup_compat_preload')){
|
530 |
wassup_compat_preload();
|
531 |
}
|
532 |
+
//Start maintenance tasks & visitor tracking
|
533 |
if(!empty($wassup_options) && $wassup_options->is_recording_active()){
|
534 |
//add actions for wp-cron scheduled tasks - @since v1.9
|
535 |
if(!has_action('wassup_scheduled_dbtasks')) add_action('wassup_scheduled_dbtasks',array('wassupDb','scheduled_dbtask'),10,1);
|
541 |
if(!empty($wassup_options->delete_auto) && $wassup_options->delete_auto !="never"){
|
542 |
if(!has_action('wassup_scheduled_purge')) add_action('wassup_scheduled_purge','wassup_auto_cleanup');
|
543 |
}
|
544 |
+
|
545 |
+
//track visitors
|
546 |
wassupPrepend();
|
547 |
}
|
548 |
if($wdebug_mode && headers_sent()){
|
638 |
}elseif($wassuppage == "wassup-options"){
|
639 |
//use Wordpress' jquery-ui.js only when current
|
640 |
if(version_compare($wp_version,'4.5','>=') || !function_exists('wassup_compat_add_scripts')){
|
|
|
|
|
641 |
wp_enqueue_script('jquery-ui-dialog');
|
642 |
+
wp_enqueue_script('jquery-ui-tabs');
|
643 |
}
|
644 |
//never use Wordpress' jquery-ui.css
|
645 |
wp_dequeue_style('jquery-ui-tabs.css');
|
646 |
wp_dequeue_style('jquery-ui-theme.css');
|
647 |
+
wp_dequeue_style('jquery-ui-dialog.css');
|
648 |
+
wp_dequeue_style('jquery-ui-core.css');
|
649 |
wp_dequeue_style('jquery-ui.css');
|
650 |
}
|
651 |
//use Wassup's custom copy of thickbox.js always
|
675 |
global $wpdb, $current_user, $wassup_options, $wdebug_mode;
|
676 |
|
677 |
//#1st verify that export request is valid
|
678 |
+
if(!isset($_REQUEST['export'])) return;
|
679 |
$exportdata=false;
|
680 |
$badrequest=false;
|
681 |
$err_msg="";
|
698 |
if(empty($current_user->ID)){
|
699 |
wp_die($err_msg);
|
700 |
}else{
|
701 |
+
wassup_log_message($err_msg);
|
|
|
702 |
wp_safe_redirect(wassupURI::get_admin_url('admin.php?page=wassup-options&tab=3'));
|
703 |
}
|
704 |
exit;
|
706 |
$err_msg="";
|
707 |
$wassup_table=$wassup_options->wassup_table;
|
708 |
$wherecondition="";
|
709 |
+
//omit spam records from export @since v1.9.1
|
710 |
+
if(empty($wassup_options->export_spam)){
|
711 |
+
$wherecondition =" AND `spam`='0'";
|
712 |
+
}
|
713 |
//for multisite compatibility
|
|
|
714 |
if($wassup_options->network_activated_plugin()){
|
715 |
+
if(!is_network_admin() && !empty($GLOBALS['current_blog']->blog_id)) $wherecondition .= sprintf(" AND `subsite_id`=%d",(int)$GLOBALS['current_blog']->blog_id);
|
716 |
}
|
717 |
+
//sorted by record id field
|
718 |
+
$wherecondition .= ' ORDER BY `id`';
|
719 |
+
$start_id=0;
|
720 |
if(isset($_REQUEST['startid']) && is_numeric($_REQUEST['startid'])){
|
721 |
+
$start_id=(int)$_REQUEST['startid'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
722 |
}
|
723 |
//# check for records before exporting...
|
|
|
724 |
$numrecords=0;
|
725 |
$exportdata=false;
|
726 |
+
$numrecords=$wpdb->get_var(sprintf("SELECT COUNT(`wassup_id`) FROM `%s` WHERE `id` > %d %s",esc_attr($wassup_table),$start_id,$wherecondition));
|
727 |
if(!is_numeric($numrecords)) $numrecords=0;
|
728 |
if($numrecords > 0){
|
729 |
+
//too big for export, abort @TODO
|
730 |
+
if($numrecords > 9999999){
|
731 |
+
$err_msg=__("Too much data for Wassup export! Use a separate MySQL Db tool instead.","wassup");
|
732 |
+
}else{
|
733 |
//Could take a long time, so increase script execution time-limit to 11 min
|
734 |
+
$stimeout=ini_get('max_execution_time');
|
735 |
+
if(is_numeric($stimeout) && $stimeout>0 && $stimeout < 660){
|
736 |
+
$disabled_funcs=ini_get('disable_functions');
|
737 |
+
if((empty($disabled_funcs) || strpos($disabled_funcs,'set_time_limit')===false) && !ini_get('safe_mode')){
|
738 |
+
$stimeout=11*60;
|
739 |
+
@set_time_limit($stimeout);
|
740 |
+
}
|
741 |
+
}
|
742 |
+
//do the export
|
743 |
+
if($_REQUEST['export']=="csv"){
|
744 |
+
wassupDb::export_records($wassup_table,$start_id,"$wherecondition","csv");
|
745 |
+
}else{
|
746 |
+
wassupDb::export_records($wassup_table,$start_id,"$wherecondition","sql");
|
747 |
}
|
748 |
}
|
|
|
|
|
749 |
}else{
|
750 |
//failed export message
|
751 |
+
$err_msg=__("ERROR: Nothing to Export.","wassup");
|
|
|
752 |
} //end if numrecords > 0
|
753 |
+
//if get here, something went wrong with export
|
754 |
+
if(!empty($err_msg)){
|
755 |
+
wassup_log_message($err_msg);
|
756 |
+
}
|
757 |
+
//reload screen to show error message
|
758 |
+
$reload_uri=remove_query_arg(array('export','whash','type','_wpnonce'));
|
759 |
+
wp_safe_redirect($reload_uri);
|
760 |
+
exit;
|
761 |
+
} //end export_wassup
|
762 |
|
763 |
+
/** Save summary message from export or other action in either wassup_meta or user_metadata @since v1.9.4 */
|
764 |
+
function wassup_log_message($msg,$msgtype="",$msgkey="0"){
|
765 |
+
global $current_user;
|
766 |
+
//msgtype,msgkey parameters for wassup_meta msg
|
767 |
+
if(!empty($msgtype)){
|
768 |
+
$expire=time()+86401; //24-hour expire
|
769 |
+
if(empty($msgkey) && !empty($_REQUEST['mid'])){
|
770 |
+
$msgkey=$_REQUEST['mid'];
|
771 |
+
}
|
772 |
+
$saved=wassupDb::update_wassupmeta($msgkey,$msgtype,$msg,$expire);
|
773 |
}else{
|
774 |
+
if(!is_object($current_user) || empty($current_user->ID)){
|
775 |
+
$user=wp_get_current_user();
|
776 |
+
}
|
777 |
+
$wassup_user_settings=get_user_option('_wassup_settings',$current_user->ID);
|
778 |
+
$wassup_user_settings['ualert_message']=$msg;
|
779 |
+
update_user_option($current_user->ID,'_wassup_settings',$wassup_user_settings);
|
780 |
}
|
781 |
+
}
|
|
|
782 |
/** Turns off all error notices except fatal errors. */
|
783 |
function wassup_disable_errors(){
|
784 |
ini_set('error_reporting',E_ERROR);
|
818 |
if(empty($wassup_options) || !$wassup_options->is_recording_active()){ //do nothing
|
819 |
return;
|
820 |
}
|
821 |
+
//New in v1.9.4: don't track ajax requests from some plugins
|
822 |
+
$active_plugins=maybe_serialize(get_option('active_plugins'));
|
823 |
+
//don't track Woocommerce ajax requests
|
824 |
+
if(isset($_REQUEST['wc-ajax']) && preg_match('#/woocommerce\.php#',$active_plugins)>0){
|
825 |
+
return;
|
826 |
+
}
|
827 |
$wassup_table=$wassup_options->wassup_table;
|
828 |
$wassup_tmp_table=$wassup_table."_tmp";
|
829 |
$wscreen_res="";
|
830 |
//session tracking with cookie
|
831 |
+
$session_timeout=false;
|
832 |
$wassup_timer=0;
|
833 |
$wassup_id="";
|
834 |
$subsite_id=(!empty($GLOBALS['current_blog']->blog_id)?$GLOBALS['current_blog']->blog_id:0);
|
849 |
//username in wassup cookie @since v1.8.3
|
850 |
if(!empty($cookie_data[5])) $cookieUser=$cookie_data[5];
|
851 |
if($wassup_timer <= 0 || $wassup_timer > 86400){
|
852 |
+
$session_timeout=true;
|
853 |
}
|
854 |
//don't reuse wassup_id when subsite changed
|
855 |
if(is_multisite()){
|
916 |
//Exclude for logged-in user in admin area (unless session_timeout is set)
|
917 |
if(!is_admin() || empty($logged_user) || $session_timeout || $req_code !=200 || empty($wassup_id)){
|
918 |
//use 'send_headers' hook for feed, media, and files except when request is wp-admin which doesn't run this hook
|
919 |
+
if(is_feed() || preg_match('#[=/\?&](feed|atom)#',$urlRequested)>0){
|
920 |
if(is_feed() && !headers_sent()){
|
921 |
add_action('send_headers','wassupAppend');
|
922 |
}else{
|
923 |
wassupAppend($req_code);
|
924 |
}
|
925 |
+
}elseif(preg_match('/(\.(3gp|7z|f4[pv]|mp[34])(?:[\?#]|$))/i',$urlRequested)>0){
|
926 |
//this is audio, video, or archive file request
|
927 |
if(!is_admin() && !headers_sent()){
|
928 |
add_action('send_headers','wassupAppend');
|
929 |
}else{
|
930 |
wassupAppend($req_code);
|
931 |
}
|
932 |
+
}elseif(preg_match('/([^\?#&]+\.([a-z]{1,4}))(?:[\?#]|$)/i',$urlRequested)>0 && basename($urlRequested)!="robots.txt"){
|
933 |
//this is multimedia or specific file request
|
934 |
if(!is_admin() && !headers_sent()){
|
935 |
add_action('send_headers','wassupAppend');
|
992 |
//identify media requests
|
993 |
$is_media=false;
|
994 |
$fileRequested="";
|
995 |
+
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))|(?:[0-9a-z.\-\/_]+(?:zoom(?:in|out)\.cur)))(?:[\?\#&]|$)#i',$_SERVER['REQUEST_URI'],$pcs)>0){
|
996 |
$is_media=true;
|
997 |
if(ini_get('allow_url_fopen')) $fileRequested=$blogurl.$pcs[1];
|
998 |
}
|
1147 |
if(!empty($cookie_data[5])) $cookieUser = $cookie_data[5];
|
1148 |
}
|
1149 |
}
|
|
|
1150 |
//Get visitor ip/hostname from http_header
|
1151 |
if(!empty($cookieIP)){
|
1152 |
$ipAddress = $_SERVER['REMOTE_ADDR'];
|
1262 |
if($req_code==200 && !empty($fileRequested) && !file_exists($fileRequested)){
|
1263 |
$req_code=404;
|
1264 |
}
|
1265 |
+
}elseif(preg_match('#(^/[0-9a-z\-/\._]+\.([a-z]{1,4}))(?:[\?&\#]|$)#i',$urlRequested,$pcs)>0 && basename($urlRequested)!="robots.txt"){
|
1266 |
//identify file requests
|
1267 |
if(ini_get('allow_url_fopen')) $fileRequested=$blogurl.$pcs[1];
|
1268 |
}
|
1305 |
//#4 Exclude users on exclusion list
|
1306 |
if (empty($wassup_options->wassup_exclude_user) || empty($logged_user) || preg_match('/(?:^|\s*,)\s*('.preg_quote($logged_user).')\s*(?:,|$)/',$wassup_options->wassup_exclude_user)==0){
|
1307 |
//'preg_match' replaces 'explode' for faster matching of users, url requests, and ip addresses @since v1.9
|
1308 |
+
//@TODO: exclude page requests by post_id
|
1309 |
//#5 Exclude urls on exclusion list
|
1310 |
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){
|
1311 |
//url matching may be affected by html-encoding, url-encoding, query parameters, and labels on the url - so do those exclusions separately
|
1407 |
if($recent_hit[0]->agent == $userAgent || empty($recent_hit[0]->agent)){
|
1408 |
if($recent_hit[0]->urlrequested == $urlRequested || $recent_hit[0]->urlrequested == '[404] '.$urlRequested){
|
1409 |
$dup_urlrequest=1;
|
1410 |
+
}elseif($is_media && $req_code == 200 && preg_match('/\.(gif|ico|jpe?g|png|tiff)$/i',$fileRequested) >0){
|
1411 |
//exclude images/photos only after confirmation of other valid page hit by visitor
|
1412 |
$dup_urlrequest=1;
|
1413 |
}
|
1468 |
}
|
1469 |
}
|
1470 |
//#14 Exclude 404 hits unless 1st visit or malware attempt
|
1471 |
+
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|<?|&\#0*60;?|&\#x0*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))){ //v1.9.3.1 bugfix: parenthesis correction
|
1472 |
+
//omit 'admin-ajax.php' and 'wp-login.php' from malware checks @since v1.9.3
|
1473 |
if($hackercheck && $spam==0 && $urlRequested !='/wp-login.php' && $urlRequested !='/wp-admin/admin-ajax.php'){
|
1474 |
$pcs=array();
|
1475 |
//identify malware
|
1558 |
}
|
1559 |
}
|
1560 |
//regular visitor attempts to access "upload" page is likely malware
|
1561 |
+
}elseif(preg_match('#[\?&][0-9a-z\-_]*(page\=upload)(?:[^0-9a-z\-_]|$)#i',$urlRequested)>0){
|
1562 |
$spam=3;
|
1563 |
}elseif($req_code==404 && wIsAttack($urlRequested)){
|
1564 |
$spam=3;
|
|
|
1565 |
}
|
1566 |
} //end if empty logged_user
|
1567 |
//retroactively update recent visitor records as spam/malware
|
1593 |
}
|
1594 |
}
|
1595 |
//# Some spiders, such as Yahoo and MSN, don't always give a unique useragent, so test against known hostnames/IP to identify these spiders
|
1596 |
+
$spider_hosts='/^((65\.55|207\.46)\.\d{3}.\d{1,3}|.*\.(crawl|yse)\.yahoo\.net|ycar\d+\.mobile\.[a-z0-9]{3}\.yahoo\.com|msnbot.*\.search\.msn\.com|crawl[0-9\-]+\.googlebot\.com|baiduspider[0-9\-]+\.crawl\.baidu\.com|\.domaintools\.com|(crawl(?:er)?|spider|robot)\-?\d*\..*)$/';
|
1597 |
//#Identify spiders from known spider domains
|
1598 |
if(empty($agent) || preg_match($spider_hosts,$hostname)>0 || stristr($agent,'unknown')!==false){
|
1599 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
1625 |
//no userAgent == spider
|
1626 |
$spider=$unknown_spider;
|
1627 |
}else{
|
1628 |
+
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()){
|
1629 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
1630 |
if($wdebug_mode){
|
1631 |
if(is_admin() || headers_sent()){
|
1698 |
} //end if empty($spider)
|
1699 |
//identify spoofers of Google/Yahoo
|
1700 |
if(!empty($spider)){
|
1701 |
+
if(!empty($hostname) && preg_match('/^(googlebot|yahoo\!\sslurp)/i',$spider)>0 && preg_match('/\.(googlebot|yahoo)\./i',$hostname)==0){
|
1702 |
$spider= __("Spoofer bot","wassup");
|
|
|
1703 |
}
|
1704 |
//for late spider identification, update previous records
|
1705 |
if($wpageviews >1 && empty($recent_hit[0]->spider)){
|
1717 |
//## Check for referrer spam...
|
1718 |
if($wassup_options->wassup_spamcheck == 1 && $spam == 0 && !$goodbot){
|
1719 |
$spamComment = New wassup_checkComment;
|
1720 |
+
//skip referrer check if from own blog
|
1721 |
+
if($wassup_options->wassup_refspam == 1 && !empty($referrer) && !$is_admin_login && stristr($referrer,$wpurl)!=$referrer && stristr($referrer,$blogurl)!=$referrer && $referrer!=$blogurl.$urlRequested){
|
1722 |
+
$refdomain=wassupURI::get_urldomain($referrer);
|
1723 |
+
$sitedomain=wassupURI::get_urldomain();
|
1724 |
+
//New in v1.9.4: skip referrer check if from own domain
|
1725 |
+
if($refdomain != $sitedomain || strpos($referrer,'=')!==false){
|
1726 |
+
//New in v1.9.4: skip referrer check if on whitelist
|
1727 |
+
if(empty($wassup_options->refspam_whitelist) || preg_match('#(?:^|\s*,)\s*('.preg_quote($refdomain).')\s*(?:,|$)#',$wassup_options->refspam_whitelist)==0){
|
1728 |
+
//check if referrer is a previous comment spammer
|
1729 |
+
if($spamComment->isRefSpam($referrer)>0){
|
1730 |
+
$spam=2;
|
1731 |
+
}else{
|
1732 |
+
//check for known referer spammer
|
1733 |
+
$isspam=wGetSpamRef($referrer,$hostname);
|
1734 |
+
if ($isspam) $spam = 2;
|
1735 |
}
|
1736 |
+
} //end if refspam_whitelist
|
1737 |
+
} //end if refdomain
|
1738 |
+
} //end if wassup_refspam
|
1739 |
//## Check for comment spammer...
|
1740 |
// No spam check on spiders unless there is a comment or forum page request...
|
1741 |
if ($spam == 0 && (empty($spider) || stristr($urlRequested,"comment")!== FALSE || stristr($urlRequested,"forum")!== FALSE || !empty($comment_user))) {
|
1742 |
//check for previous spammer detected by anti-spam plugin
|
1743 |
+
$spammerIP = $spamComment->isSpammer($IP);
|
1744 |
if($spammerIP > 0) $spam=1;
|
1745 |
//set as spam if both URL and referrer are "comment" and browser is obsolete or Opera
|
1746 |
if ($spam== 0 && $wassup_options->wassup_spam==1 && stristr($urlRequested,"comment")!== FALSE && stristr($referrer,"#comment")!==FALSE && (stristr($browser,"opera")!==FALSE || preg_match('/^(AOL|Netscape|IE)\s[1-6]$/',$browser)>0)) {
|
1784 |
//get language/locale
|
1785 |
if(empty($language) && !empty($recent_hit[0]->language)) $language=$recent_hit[0]->language;
|
1786 |
if($wdebug_mode){
|
1787 |
+
if(headers_sent()) echo "\n language=$language";
|
1788 |
+
else $debug_output .= "\n language=$language";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1789 |
}
|
1790 |
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){
|
1791 |
//get language/locale info from hostname or referrer data
|
1792 |
$language=wGetLocale($language,$hostname,$referrer);
|
1793 |
}
|
1794 |
if($wdebug_mode){
|
1795 |
+
if(headers_sent()) echo "\n...language=$language (after geoip/wgetlocale)";
|
1796 |
+
else $debug_output .= " ...language=$language (after geoip/wgetlocale)";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1797 |
}
|
1798 |
// get search engine and search keywords from referrer
|
1799 |
$searchengine="";
|
1873 |
$searchcountry=$match[3];
|
1874 |
}
|
1875 |
if(!empty($searchcountry) && $searchcountry!="us"){
|
1876 |
+
//v1.9.3.1 bugfix: avoid duplicate country code in searchengine name
|
1877 |
+
if(stristr($searchengine," $searchcountry")===false) $searchengine .=" ".strtoupper($searchcountry);
|
1878 |
if($language == "us" || empty($language) || $language=="en"){
|
1879 |
//make tld consistent with language
|
1880 |
if($searchcountry=="uk") $searchcountry="gb";
|
1952 |
}
|
1953 |
}
|
1954 |
if($wdebug_mode){
|
1955 |
+
if(headers_sent()){
|
|
|
|
|
|
|
|
|
|
|
1956 |
if(!empty($wassup_recid)){
|
1957 |
echo "\nWassUp record data:";
|
1958 |
print_r($wassup_rec);
|
1972 |
}
|
1973 |
} //end if prefetch
|
1974 |
}elseif($wdebug_mode){
|
1975 |
+
if(headers_sent()) echo "\n #18 Excluded by: wp-content/plugins (after 404)";
|
1976 |
else $debug_output .="\n #18 Excluded by: wp-content/plugins (after 404)";
|
1977 |
} //end if !wp-content/plugins
|
1978 |
}elseif($wdebug_mode){
|
1979 |
+
if(headers_sent()) echo "\n #17 Excluded by: wassup_spam";
|
1980 |
else $debug_output .="\n #17 Excluded by: wassup_spam";
|
1981 |
} //end if $spam == 0
|
1982 |
}elseif($wdebug_mode){
|
1983 |
+
if(headers_sent()) echo "\n #16 Excluded by: wassup_spider";
|
1984 |
else $debug_output .="\n #16 Excluded by: wassup_spider";
|
1985 |
} //end if wassup_spider
|
1986 |
}elseif($wdebug_mode){
|
1987 |
+
if(headers_sent()) echo "\n #15 Excluded by: wassup_hack";
|
1988 |
else $debug_output .="\n #15 Excluded by: wassup_hack";
|
1989 |
} //end if wassup_hack
|
1990 |
}elseif($wdebug_mode){
|
1991 |
+
if(headers_sent()) echo "\n #14 Excluded by: is_404";
|
1992 |
else $debug_output .="\n #14 Excluded by: is_404";
|
1993 |
} //end if !is_404
|
1994 |
}elseif($wdebug_mode){
|
1995 |
+
if(headers_sent()) echo "\n #13 Excluded by: !wp-admin (ajax)";
|
1996 |
else $debug_output .="\n #13 Excluded by: !wp_admin (ajax)";
|
1997 |
} //end if !wp_admin (ajax) && recent_hit
|
1998 |
}elseif($wdebug_mode){
|
1999 |
+
if(headers_sent()) echo "\n #12 Excluded by: dup_urlrequest";
|
2000 |
else $debug_output .="\n #12 Excluded by: dup_urlrequest";
|
2001 |
} //end if dup_urlrequest == 0
|
2002 |
}elseif($wdebug_mode){
|
2003 |
+
if(headers_sent()) echo "\n #11 Excluded by: wassup_attack";
|
2004 |
else $debug_output .="\n #11 Excluded by: wassup_attack";
|
2005 |
} //end if wassup_attack
|
2006 |
}elseif($wdebug_mode){
|
2007 |
+
if(headers_sent()) echo "\n #10 Excluded by: wassup_loggedin";
|
2008 |
else $debug_output .="\n #10 Excluded by: wassup_loggedin";
|
2009 |
} //end if wassup_loggedin
|
2010 |
}elseif($wdebug_mode){
|
2011 |
+
if(headers_sent()) echo "\n #9 Excluded by: wp-content/themes";
|
2012 |
else $debug_output .="\n #9 Excluded by: wp-content/themes";
|
2013 |
} //end if !themes
|
2014 |
}elseif($wdebug_mode){
|
2015 |
+
if(headers_sent()) echo "\n #8 Excluded by: wp-content/plugins (or hostname wildcard)";
|
2016 |
else $debug_output .="\n #8 Excluded by: wp-content/plugins (or hostname wildcard)";
|
2017 |
} //end if !plugins
|
2018 |
}elseif($wdebug_mode){
|
2019 |
+
if(headers_sent()) echo "\n #7 Excluded by: exclude_host (or IP wilcard)";
|
2020 |
else $debug_output .="\n #7 Excluded by: exclude_host (or IP wildcard)";
|
2021 |
} //end if wassup_exclude_host
|
2022 |
}elseif($wdebug_mode){
|
2023 |
+
if(headers_sent()) echo "\n #6 Excluded by: wassup_exclude";
|
2024 |
else $debug_output .="\n #6 Excluded by: wassup_exclude";
|
2025 |
} //end if wassup_exclude
|
2026 |
}elseif($wdebug_mode){
|
2027 |
+
if(headers_sent()) echo "\n #5 Excluded by: exclude_url";
|
2028 |
else $debug_output .="\n #5 Excluded by: exclude_url";
|
2029 |
} //end if wassup_exclude_url
|
2030 |
}elseif($wdebug_mode){
|
2031 |
+
if(headers_sent()) echo "\n #4 Excluded by: exclude_user";
|
2032 |
else $debug_output .="\n #4 Excluded by: exclude_user";
|
2033 |
} //end if wassup_exclude_user
|
2034 |
}elseif($wdebug_mode){
|
2035 |
+
if(headers_sent()) echo "\n #3 Excluded by: is_admin";
|
2036 |
else $debug_output .="\n #3 Excluded by: is_admin";
|
2037 |
} //end if !is_admin
|
2038 |
} //end if wp-cron.php?doing_wp_cron===FALSE //#2
|
2039 |
}elseif($wdebug_mode){
|
2040 |
+
if(headers_sent()) echo "\n #1 Excluded by: is_admin_login";
|
2041 |
else $debug_output .="\n #1 Excluded by: is_admin_login";
|
2042 |
} //end if !is_admin_login
|
2043 |
|
2053 |
}
|
2054 |
if(is_numeric($result)) $in_temp=(int)$result;
|
2055 |
if($wdebug_mode){
|
2056 |
+
if(headers_sent()) echo "\nin_temp=".$result;
|
2057 |
else $debug_output .="\nin_temp=".$result;
|
2058 |
}
|
2059 |
//add new temp record
|
2167 |
wp_schedule_single_event(time()+40,'wassup_scheduled_dbtasks',$args);
|
2168 |
}
|
2169 |
if($wdebug_mode){
|
2170 |
+
if(headers_sent()){
|
2171 |
echo "\nWassup scheduled tasks:";
|
2172 |
print_r($wassup_dbtask);
|
2173 |
}
|
2174 |
}
|
2175 |
}
|
2176 |
if($wdebug_mode){ //close comment tag to hide debug data from visitors
|
2177 |
+
if(headers_sent()){
|
2178 |
echo "\n--> \n";
|
2179 |
}else{
|
2180 |
$debug_output .= "<br />\n--> \n";
|
2181 |
+
//add debug output to wp_footer output - @TODO
|
2182 |
$expire=time()+180;
|
2183 |
$wassup_key=wassup_clientIP($_SERVER['REMOTE_ADDR']);
|
2184 |
wassupDb::update_wassupmeta($wassup_key,'_debug_output',$expire,$debug_output);
|
2359 |
return false;
|
2360 |
}
|
2361 |
//Check against Google, Yahoo, MSN, Ask and others
|
2362 |
+
if(preg_match('#^https?://([^/]+).*[&\?](prev|q|p|s|search|searchfor|as_q|as_epq|query|keywords|term|encquery)=([^&]+)#i',$SeReferer,$pcs) > 0){
|
2363 |
$SeDomain = trim(strtolower($pcs[1]));
|
2364 |
if ($pcs[2] == "encquery") {
|
2365 |
$SeQuery = " *".__("encrypted search","wassup")."* ";
|
2368 |
}
|
2369 |
|
2370 |
//Check for search engines that show query as a url with 'search' and keywords in path (ex: Dogpile.com)
|
2371 |
+
}elseif(preg_match('#^https?://([^/]+).*/(results|search)/web/([^/]+)/(\d+)?#i',$SeReferer,$pcs)>0){
|
2372 |
$SeDomain = trim(strtolower($pcs[1]));
|
2373 |
$SeQuery = $pcs[3];
|
2374 |
if (!empty($pcs[4])) {
|
2375 |
$SePos=(int)$pcs[4];
|
2376 |
}
|
2377 |
//Check for search engines that show query as a url with 'search' in domain and keywords in path (ex: twitnitsearch.appspot.com)
|
2378 |
+
}elseif(preg_match('#^https?://([a-z0-9_\-\.]*(search)(?:[a-z0-9_\-\.]*\.(?:[a-z]{2,4})))/([^/]+)(?:[a-z_\-=/]+)?/(\d+)?#i',$SeReferer."/",$pcs)>0){
|
2379 |
$SeDomain = trim(strtolower($pcs[1]));
|
2380 |
$SeQuery = $pcs[3];
|
2381 |
if (!empty($pcs[4])) {
|
2395 |
}
|
2396 |
}
|
2397 |
if (!isset($SePos)) {
|
2398 |
+
if(preg_match('#[&\?](start|startpage|b|cd|first|stq|pi|page)[=/](\d+)#i',$SeReferer,$pcs)) {
|
2399 |
$SePos = $pcs[2];
|
2400 |
} else {
|
2401 |
$SePos = 1;
|
2803 |
//search engine or key is not in list, so check for search phrase instead
|
2804 |
if (empty($search_phrase) && !empty($referrer)) {
|
2805 |
//Check for general search phrases
|
2806 |
+
if(preg_match('#^https?://([^/]+).*[&?](q|search|searchfor|as_q|as_epq|query|keywords?|term|text|encquery)=([^&]+)#i',$referrer,$pcs) > 0){
|
2807 |
if (empty($searchengine)) $searchengine=trim(strtolower($pcs[1]));
|
2808 |
if ($pcs[2] =="encquery"){
|
2809 |
$search_phrase=" *".__("encrypted search","wassup")."* ";
|
2811 |
$search_phrase = $pcs[3];
|
2812 |
}
|
2813 |
//Check separately for queries that use nonstandard search variable to avoid retrieving values like "p=parameter" when "q=query" exists
|
2814 |
+
}elseif(preg_match('#^https?://([^/]+).*(?:results|search|query).*[&?](aq|as|p|su|s|kw|k|qo|qp|qs|string)=([^&]+)#i',$referrer,$pcs) > 0){
|
2815 |
if (empty($searchengine)) $searchengine = trim(strtolower($pcs[1]));
|
2816 |
$search_phrase = $pcs[3];
|
2817 |
}
|
2818 |
} //end if search_phrase
|
2819 |
//do a separate check for page number, if not found above
|
2820 |
if (!empty($search_phrase)) {
|
2821 |
+
if(empty($searchpage) && preg_match('#[&\?](start|startpage|b|cd|first|stq|p|pi|page)[=/](\d+)#i',$referrer,$pcs)>0){
|
2822 |
$searchpage = $pcs[2];
|
2823 |
}
|
2824 |
}
|
2918 |
$pcs=array();
|
2919 |
//identify obvious script injection bots
|
2920 |
if(!empty($ua)){
|
2921 |
+
//New in v1.9.3.1: check for more variations of <script> and <a> tags embedded in user agent string
|
2922 |
if(stristr($ua,'location.href')!==FALSE){
|
2923 |
$crawlertype="H";
|
2924 |
$crawler="Script Injection bot";
|
2925 |
+
}elseif(preg_match('/(<|<?|�*60;?|%3C)a(\s|%20| |\+)href/i',$ua)>0){
|
2926 |
$crawlertype="H";
|
2927 |
$crawler="Script Injection bot";
|
2928 |
+
}elseif(preg_match('/(<|<?|�*60;?|%3C)scr(ipt|[^0-9a-z\-_])/i',$ua)>0){
|
2929 |
$crawlertype="H";
|
2930 |
$crawler="Script Injection bot";
|
2931 |
}elseif(preg_match('/select.*(\s|%20|\+|%#32;)from(\s|%20|\+|%#32;)wp_/i',$ua)>0){
|
2962 |
$crawler="Baiduspider";
|
2963 |
$crawlertype="R";
|
2964 |
|
2965 |
+
}elseif(substr($hostname,-16)==".domaintools.com"){
|
2966 |
+
$crawler="Whois.domaintools.com";
|
2967 |
+
$crawlertype="R";
|
2968 |
}
|
2969 |
} //end if $hostname
|
2970 |
$pcs=array();
|
2971 |
$pcs2=array();
|
2972 |
if(empty($crawler)){
|
2973 |
// check for crawlers that identify themselves clearly in their user agent string with words like bot, spider, and crawler
|
2974 |
+
if ((!empty($ua) && preg_match('#(\w+[ \-_]?(bot|crawl|google|reader|seeker|spider|feed|indexer|parser))[0-9/ -:_.;\)]#',$ua,$pcs) >0) || preg_match('#(crawl|feed|google|indexer|parser|reader|robot|seeker|spider)#',$hostname,$pcs2) >0){
|
2975 |
if(!empty($pcs[1])) $crawler=$pcs[1];
|
2976 |
elseif(!empty($pcs2[1])) $crawler="unknown_spider";
|
2977 |
$crawlertype="R";
|
3001 |
}
|
3002 |
}
|
3003 |
//get crawler info. from a known list of bots and feedreaders that don't list their names first in UA string.
|
3004 |
+
//Note: spaces removed from UA string for this bot comparison
|
3005 |
$crawler=trim($crawler);
|
3006 |
if(empty($crawler) || $crawler=="unknown_spider"){
|
3007 |
$uagent=str_replace(" ","",$ua);
|
3313 |
if(empty($crawler)){
|
3314 |
$pcs=array();
|
3315 |
//Assume first word in useragent is crawler name
|
3316 |
+
if(preg_match('/^(\w+)[\/ \-\:_\.;]/',$ua,$pcs) > 0){
|
3317 |
if(strlen($pcs[1])>1 && $pcs[1]!="Mozilla"){
|
3318 |
$crawler=$pcs[1];
|
3319 |
}
|
3322 |
//if (empty($crawler) && !empty($browser)) $crawler = $browser;
|
3323 |
}
|
3324 |
//#do a feed check and get feed subcribers, if available
|
3325 |
+
if(preg_match('/([0-9]{1,10})\s?subscriber/i',$ua,$subscriber) > 0){
|
3326 |
// It's a feedreader with some subscribers
|
3327 |
$feed=$subscriber[1];
|
3328 |
if(empty($crawler) && empty($browser)){
|
3362 |
list($language)=explode(";",$langarray[0]);
|
3363 |
}
|
3364 |
//use 2-digit top-level domains (TLD) for country code, if any
|
3365 |
+
if (strlen($hostname)>2 && preg_match('/\.[a-z]{2}$/i', $hostname)>0){
|
3366 |
$country=strtolower(substr($hostname,-2));
|
3367 |
//ignore domains commonly used for media
|
3368 |
if($country == "tv" || $country == "fm") $country="";
|
3417 |
}
|
3418 |
//Replace language with locale for widely spoken languages
|
3419 |
if(!empty($country)){
|
3420 |
+
if(empty($language) || $language=="us" || preg_match('/^([a-z]{2})$/',$language)==0){
|
3421 |
$language=$country;
|
3422 |
}elseif($language=="es"){
|
3423 |
//for Central/South American locales
|
3424 |
$language=$country;
|
3425 |
}
|
3426 |
}
|
3427 |
+
if(!empty($language) && preg_match('/^[a-z]{2}$/',$language)>0){
|
3428 |
$clocale=$language;
|
3429 |
}
|
3430 |
return $clocale;
|
3431 |
} //end function wGetLocale
|
3432 |
|
3433 |
/**
|
3434 |
+
* Check referrer string and referrer host (or hostname) for spam
|
3435 |
+
* -checks referrer string for known spammer content (faked referrer).
|
3436 |
+
* -checks referer host against know list of spammers
|
|
|
3437 |
* @param string $referrer, string $hostname
|
3438 |
* @return boolean
|
3439 |
*/
|
3451 |
if(isset($rurl['host'])){
|
3452 |
$referrer_host=$rurl['host'];
|
3453 |
$thissite=parse_url(get_option('home'));
|
3454 |
+
$thisdomain=wassupURI::get_urldomain();
|
3455 |
//exclude current site as referrer
|
3456 |
if(isset($thissite['host']) && $referrer_host == $thissite['host']){
|
3457 |
$referrer_host="";
|
3465 |
elseif(preg_match('#(\.|/)youtu.be/[0-9a-z]+#i',$ref)>0) $badhost=true;
|
3466 |
//some facebook links in referrer are faked
|
3467 |
elseif(preg_match('#(\.|/)facebook\.com\/ASeaOfSins$#',$ref)>0) $badhost=true;
|
3468 |
+
//domain lookup in referrer is faked
|
3469 |
+
elseif(preg_match('#/[0-9a-z_\-]+(?:\.php|/)(\?[a-z]+\=(?:http://)?(?:[0-9a-z_\-\.]+)?)'.preg_quote($thisdomain).'(?:[^0-9a-z_\-.]|$)#i',$ref)>0) $badhost=true;
|
3470 |
}
|
3471 |
} else { //faked referrer string
|
3472 |
$badhost=true;
|
3480 |
} //end elseif
|
3481 |
//#Assume any referrer name similar to "viagra/zanax/.." is spam and mark as such...
|
3482 |
if (!$badhost && !empty($referrer_host)) {
|
3483 |
+
$lines = array("ambien","ativan","blackjack","bukakke",
|
3484 |
+
"casino","cialis","ciallis", "celebrex","cumdripping",
|
3485 |
+
"cumeating","cumfilled","cumpussy","cumsucking",
|
3486 |
+
"cumswapping","diazepam","diflucan","drippingcum",
|
3487 |
+
"eatingcum","enhancement","finasteride","fioricet",
|
3488 |
+
"gabapentin","gangbang","highprofitclub","hydrocodone",
|
3489 |
+
"krankenversicherung","lamisil","latinonakedgirl",
|
3490 |
+
"levitra", "libido", "lipitor","lortab","melatonin",
|
3491 |
+
"meridia","NetCaptor","orgy-","phentemine",
|
3492 |
+
"phentermine","propecia","proscar","pussycum",
|
3493 |
+
"sildenafil","snowballing","suckingcum","swappingcum",
|
3494 |
+
"swingers","tadalafil","tigerspice","tramadol",
|
3495 |
+
"ultram-","valium","valtrex","viagra","viagara",
|
3496 |
+
"vicodin","xanax","xenical","xxx-","zoloft","zovirax",
|
3497 |
+
"zanax"
|
3498 |
+
);
|
|
|
|
|
3499 |
foreach ($lines as $badreferrer) {
|
3500 |
+
if (strstr($referrer_host,$badreferrer)!== FALSE){
|
3501 |
+
$badhost=true;
|
3502 |
+
break 1;
|
3503 |
+
}elseif(preg_match('#([^a-z]|^)(free|orgy|penis|porn)([^a-z])#',$referrer)>0){
|
3504 |
$badhost=true;
|
3505 |
break 1;
|
3506 |
}
|
3518 |
} //end wGetSpamRef
|
3519 |
|
3520 |
/**
|
3521 |
+
* Compare a hostname (and referrer host) arguments against a list of known spammers.
|
3522 |
* @param string(2)
|
3523 |
* @return boolean
|
3524 |
* @since v1.9
|
3532 |
$lines = array( '209\.29\.25\.180',
|
3533 |
'78\.185\.148\.185',
|
3534 |
'93\.90\.243\.63',
|
3535 |
+
'1\-free\-share\-buttons\.com',
|
3536 |
+
'amazon\-seo\-service\.com',
|
3537 |
'amsterjob\.com',
|
3538 |
+
'anonymizeme\.pro',
|
3539 |
'burger\-imperia\.com',
|
3540 |
'buttons\-for\-website\.com',
|
3541 |
'canadapharm\.atwebpages\.com',
|
3573 |
'gameskillinggames\.net',
|
3574 |
'gardenactivities\.webnode\.com',
|
3575 |
'globalringtones\.net',
|
3576 |
+
'gofirstrow\.eu',
|
3577 |
'gossipchips\.com',
|
3578 |
'gskstudio\.com',
|
3579 |
'hearcam\.org',
|
3630 |
'rufights\.com',
|
3631 |
'scripted\.com',
|
3632 |
'seoindiawizard\.com',
|
3633 |
+
'share\-buttons\-for\-free\.com',
|
3634 |
'singlesvacationspackages\.com',
|
3635 |
'sitetalk\-revolution\.com',
|
3636 |
'smartforexsignal\.com',
|
3642 |
'thebestweddingparty\.com',
|
3643 |
'thik\-chik\.com',
|
3644 |
'thisweekendsmovies\.com',
|
3645 |
+
'top10\-way\.com',
|
3646 |
'uggbootsnewest\.net',
|
3647 |
'uggsmencheap\.com',
|
3648 |
'uggsnewest\.com',
|
3653 |
'[a-z\-\.]+vigra\-buy\.info',
|
3654 |
'vitamin\-d\-deficiency\-symptoms\.com',
|
3655 |
'vpn\-privacy\.org',
|
3656 |
+
'w3data\.co',
|
3657 |
'watchstock\.com',
|
3658 |
'web\-promotion\-services\.net',
|
3659 |
'wh\-tech\.com',
|
3735 |
* @return string
|
3736 |
*/
|
3737 |
function wassup_get_clientAddr($ipAddress=""){
|
3738 |
+
return wassupIP::get_clientAddr($ipAddress);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3739 |
} //end wassup_get_clientAddr
|
3740 |
|
3741 |
// lookup the hostname from an ip address via cache or via gethostbyaddr command @since v1.9
|
3742 |
function wassup_get_hostname($IP=""){
|
3743 |
+
return wassupIP::get_hostname($IP);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3744 |
} //end wassup_get_hostname
|
3745 |
|
3746 |
// Return a single ip (the client IP) from a comma-separated IP address with no ip validation. @since v1.9
|
3747 |
function wassup_clientIP($ipAddress){
|
3748 |
+
if(!empty($ipAddress)) return wassupIP::clientIP($ipAddress);
|
3749 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3750 |
}
|
3751 |
|
3752 |
//return 1st valid IP address in a comma-separated list of IP addresses -Helene D. 2009-03-01
|
3753 |
function wValidIP($multiIP) {
|
3754 |
+
if(!empty($multiIP)) return wassupIP::validIP($multiIP);
|
3755 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3756 |
} //end function wValidIP
|
3757 |
|
3758 |
/**
|
3759 |
* Add Wassup meta tag and javascripts to html document head
|
3760 |
+
* -add javascript function to retrieve screen resolution
|
3761 |
*/
|
3762 |
function wassup_head() {
|
3763 |
global $wassup_options, $wscreen_res;
|
3778 |
echo "\n";?>
|
3779 |
<script type="text/javascript">
|
3780 |
//<![CDATA[
|
3781 |
+
function wassup_get_screenres(){
|
3782 |
+
var screen_res = screen.width + " x " + screen.height;
|
3783 |
if(screen_res==" x ") screen_res=window.screen.width+" x "+window.screen.height;
|
3784 |
if(screen_res==" x ") screen_res=screen.availWidth+" x "+screen.availHeight;
|
3785 |
+
if (screen_res!=" x "){document.cookie = "wassup_screen_res<?php echo $sessionhash;?>=" + encodeURIComponent(screen_res)+ "; path=/; domain=" + document.domain;}
|
3786 |
+
}
|
3787 |
+
wassup_get_screenres();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3788 |
//]]>
|
3789 |
</script><?php
|
3790 |
}
|
3792 |
|
3793 |
/**
|
3794 |
* Output Wassup tag and javascripts in html document footer.
|
3795 |
+
* -call screen resolution javascript function for IE users
|
3796 |
* -put a timestamp in page footer as page caching test
|
3797 |
* -output any stored debug data
|
3798 |
*/
|
3799 |
function wassup_foot() {
|
3800 |
global $wassup_options, $wscreen_res, $wdebug_mode;
|
3801 |
+
//'screen_res' javascript function called in footer because Microsoft browsers (IE/Edge) do not report screen height or width until after document body starts rendering. @since v1.8.2
|
3802 |
$sessionhash=$wassup_options->whash;
|
3803 |
if(empty($wscreen_res) && !isset($_COOKIE['wassup_screen_res'.$sessionhash])){
|
3804 |
$ua=(!empty($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:"");
|
3805 |
if(strpos($ua,'MSIE')>0 || strpos($ua,'rv:11')>0 || strpos($ua,'Edge/')>0 || stristr($_SERVER['REQUEST_URI'],'login.php')!==false){
|
3806 |
echo "\n";?>
|
3807 |
+
<script type="text/javascript">wassup_get_screenres();</script>
|
|
|
|
|
|
|
|
|
|
|
3808 |
<?php
|
3809 |
} //end if MSIE
|
3810 |
} //end if 'wscreen_res'
|
widgets/widget_functions.php
CHANGED
@@ -257,9 +257,9 @@ function wassup_widget_get_online_counts($instance=array()){
|
|
257 |
$i++;
|
258 |
$flag='/img/flags/'.$loc->top_item.'.png';
|
259 |
if(is_readable(WASSUPDIR.$flag)){
|
260 |
-
$html .=' <nobr><img src="'.WASSUPURL.$flag.'" class="icon" alt="'.$loc->top_item.'"
|
261 |
}else{
|
262 |
-
$html .=strtoupper($loc->top_item).'-'.$loc->top_count;
|
263 |
}
|
264 |
if($i < $fc) $html .=' · ';
|
265 |
}
|
@@ -280,9 +280,9 @@ function wassup_widget_get_topstat($item,$limit,$chars,$from_date,$show_counts=0
|
|
280 |
global $wpdb,$wassup_options,$wdebug_mode;
|
281 |
$html="";
|
282 |
if($limit >0){
|
283 |
-
//exclude spiders from widget data (spam already excluded in
|
284 |
$top_results=array();
|
285 |
-
if(!function_exists('
|
286 |
$wpurl=strtolower(rtrim(wassupURI::get_wphome()));
|
287 |
$blogurl=strtolower(rtrim(wassupURI::get_sitehome()));
|
288 |
$top_condition=" `timestamp`>='".$from_date."' AND `spider`=''";
|
@@ -311,7 +311,7 @@ function wassup_widget_get_topstat($item,$limit,$chars,$from_date,$show_counts=0
|
|
311 |
}elseif($item == 'locale'){
|
312 |
$scol="language";
|
313 |
}
|
314 |
-
$top_sql=
|
315 |
if(!empty($top_sql)) $top_results=$wpdb->get_results($top_sql);
|
316 |
$ndigits=1;
|
317 |
if(!empty($top_results) && count($top_results)>0){
|
@@ -320,16 +320,17 @@ function wassup_widget_get_topstat($item,$limit,$chars,$from_date,$show_counts=0
|
|
320 |
$liclass="";
|
321 |
if(!empty($show_counts)) $liclass=' class="stat-count"';
|
322 |
if($wdebug_mode){
|
323 |
-
echo "\n\t".'<!-- '.count($top_results).' results from query '.$top_sql
|
|
|
324 |
}
|
325 |
foreach($top_results as $wtop){
|
326 |
$top_count='';
|
327 |
if(!empty($show_counts)){
|
328 |
$top_count=wPadNum($wtop->top_count,$ndigits);
|
329 |
}
|
330 |
-
$html .='
|
331 |
-
<li'.$liclass.'>';
|
332 |
if($scol == "language"){
|
|
|
|
|
333 |
$flag='/img/flags/'.esc_attr($wtop->top_item).'.png';
|
334 |
if(is_readable(WASSUPDIR.$flag)){
|
335 |
$flagsrc=WASSUPURL.$flag;
|
@@ -337,33 +338,45 @@ function wassup_widget_get_topstat($item,$limit,$chars,$from_date,$show_counts=0
|
|
337 |
}else{
|
338 |
$html .='<nobr>'.$top_count.'<span class="top-item">'.wassupURI::disarm_attack($wtop->top_item).'</span></nobr>';
|
339 |
}
|
|
|
340 |
}elseif($scol == "url_wpid" || $scol == "search"){
|
|
|
|
|
341 |
if(!empty($wtop->top_link)){
|
342 |
$html .=$top_count.'<span class="top-item"><a href="'.wassupURI::cleanURL($wtop->top_link).'" title="'.wassupURI::disarm_attack($wtop->top_item).'">'.wassupURI::disarm_attack($wtop->top_item).'</a></span>';
|
343 |
}else{
|
344 |
$html .=$top_count.'<span class="top-item">'.wassupURI::disarm_attack($wtop->top_item).'</span>';
|
345 |
}
|
|
|
346 |
}elseif($scol == "urlrequested"){
|
347 |
//don't show possible spam/malware
|
348 |
if(preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-(login|cron)\.php|["\'\<\>\{\}\(\)\*\\\\`]|&[lgr]t;|�?3[49];|�?4[01];|�?6[02];|�?9[26];|’|”|"/i',$wtop->top_link)>0 || wassupURI::is_xss($wtop->top_link)){
|
349 |
continue;
|
350 |
}
|
|
|
|
|
351 |
if(!empty($wtop->top_link)){
|
352 |
$urllink=wassupURI::url_link($wtop->top_link,false);
|
353 |
}else{
|
354 |
$urllink=wassupURI::url_link($wtop->top_item,false);
|
355 |
}
|
356 |
$html .=$top_count.'<span class="top-url">'.$urllink.'</span>';
|
|
|
357 |
}elseif($scol == "referrers"){
|
358 |
//don't show possible spam/malware
|
359 |
if(preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-(login|cron)\.php|["\'\<\>\{\}\(\)\*\\\\`]|&[lgr]t;|�?3[49];|�?4[01];|�?6[02];|�?9[26];|’|”|"/i',$wtop->top_link)>0 || wassupURI::is_xss($wtop->top_link)){
|
360 |
continue;
|
361 |
}
|
|
|
|
|
362 |
$trec=(array)$wtop;
|
363 |
$trec['referrer']=$trec['top_link'];
|
364 |
$reflink=wassupURI::referrer_link((object)$trec,false);
|
365 |
$html .=$top_count.'<span class="top-url">'.$reflink.'</span>';
|
|
|
366 |
}else{
|
|
|
|
|
367 |
if($chars >0 && strlen($wtop->top_item)>$chars){
|
368 |
if(!empty($wtop->top_link)){
|
369 |
$html .=$top_count.'<span class="top-item"><a href="'.wassupURI::cleanURL($wtop->top_link).'" title="'.wassupURI::disarm_attack($wtop->top_item).'">'.stringShortener($wtop->top_item,$chars).'</a></span>';
|
@@ -377,8 +390,8 @@ function wassup_widget_get_topstat($item,$limit,$chars,$from_date,$show_counts=0
|
|
377 |
$html .=$top_count.'<span class="top-item">'.wassupURI::disarm_attack($wtop->top_item).'</span>';
|
378 |
}
|
379 |
}
|
|
|
380 |
}
|
381 |
-
$html .='</li>';
|
382 |
} //end foreach
|
383 |
}elseif($wdebug_mode){
|
384 |
echo "\n".'<!-- No results for '.esc_attr($item).' on query $top_sql='.$top_sql.' found! -->';
|
@@ -394,14 +407,65 @@ function wassup_widget_get_topstat($item,$limit,$chars,$from_date,$show_counts=0
|
|
394 |
*/
|
395 |
function wassup_widget_stat_gettext($statitem,$heading=""){
|
396 |
if(empty($heading)) $heading=__("Top","wassup");
|
397 |
-
if($statitem=="articles")
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
return $gettext;
|
406 |
}
|
407 |
?>
|
257 |
$i++;
|
258 |
$flag='/img/flags/'.$loc->top_item.'.png';
|
259 |
if(is_readable(WASSUPDIR.$flag)){
|
260 |
+
$html .=' <nobr><img src="'.WASSUPURL.$flag.'" class="icon" alt="'.$loc->top_item.'"/><span class="flag-count">'.$loc->top_count.'</span></nobr>';
|
261 |
}else{
|
262 |
+
$html .='<span class="flag-count">'.strtoupper($loc->top_item).'-'.$loc->top_count.'</span>';
|
263 |
}
|
264 |
if($i < $fc) $html .=' · ';
|
265 |
}
|
280 |
global $wpdb,$wassup_options,$wdebug_mode;
|
281 |
$html="";
|
282 |
if($limit >0){
|
283 |
+
//exclude spiders from widget data (spam already excluded in get_wassupstat)
|
284 |
$top_results=array();
|
285 |
+
if(!function_exists('get_wassupstat')) include_once(WASSUPDIR ."/lib/main.php");
|
286 |
$wpurl=strtolower(rtrim(wassupURI::get_wphome()));
|
287 |
$blogurl=strtolower(rtrim(wassupURI::get_sitehome()));
|
288 |
$top_condition=" `timestamp`>='".$from_date."' AND `spider`=''";
|
311 |
}elseif($item == 'locale'){
|
312 |
$scol="language";
|
313 |
}
|
314 |
+
$top_sql=get_wassupstat($scol,$limit,$top_condition,"sql");
|
315 |
if(!empty($top_sql)) $top_results=$wpdb->get_results($top_sql);
|
316 |
$ndigits=1;
|
317 |
if(!empty($top_results) && count($top_results)>0){
|
320 |
$liclass="";
|
321 |
if(!empty($show_counts)) $liclass=' class="stat-count"';
|
322 |
if($wdebug_mode){
|
323 |
+
echo "\n\t".'<!-- '.count($top_results).' results from query '.$top_sql;
|
324 |
+
echo "\n\t".' '.serialize($top_results).' -->';
|
325 |
}
|
326 |
foreach($top_results as $wtop){
|
327 |
$top_count='';
|
328 |
if(!empty($show_counts)){
|
329 |
$top_count=wPadNum($wtop->top_count,$ndigits);
|
330 |
}
|
|
|
|
|
331 |
if($scol == "language"){
|
332 |
+
$html .='
|
333 |
+
<li'.$liclass.'>';
|
334 |
$flag='/img/flags/'.esc_attr($wtop->top_item).'.png';
|
335 |
if(is_readable(WASSUPDIR.$flag)){
|
336 |
$flagsrc=WASSUPURL.$flag;
|
338 |
}else{
|
339 |
$html .='<nobr>'.$top_count.'<span class="top-item">'.wassupURI::disarm_attack($wtop->top_item).'</span></nobr>';
|
340 |
}
|
341 |
+
$html .='</li>';
|
342 |
}elseif($scol == "url_wpid" || $scol == "search"){
|
343 |
+
$html .='
|
344 |
+
<li'.$liclass.'>';
|
345 |
if(!empty($wtop->top_link)){
|
346 |
$html .=$top_count.'<span class="top-item"><a href="'.wassupURI::cleanURL($wtop->top_link).'" title="'.wassupURI::disarm_attack($wtop->top_item).'">'.wassupURI::disarm_attack($wtop->top_item).'</a></span>';
|
347 |
}else{
|
348 |
$html .=$top_count.'<span class="top-item">'.wassupURI::disarm_attack($wtop->top_item).'</span>';
|
349 |
}
|
350 |
+
$html .='</li>';
|
351 |
}elseif($scol == "urlrequested"){
|
352 |
//don't show possible spam/malware
|
353 |
if(preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-(login|cron)\.php|["\'\<\>\{\}\(\)\*\\\\`]|&[lgr]t;|�?3[49];|�?4[01];|�?6[02];|�?9[26];|’|”|"/i',$wtop->top_link)>0 || wassupURI::is_xss($wtop->top_link)){
|
354 |
continue;
|
355 |
}
|
356 |
+
$html .='
|
357 |
+
<li'.$liclass.'>';
|
358 |
if(!empty($wtop->top_link)){
|
359 |
$urllink=wassupURI::url_link($wtop->top_link,false);
|
360 |
}else{
|
361 |
$urllink=wassupURI::url_link($wtop->top_item,false);
|
362 |
}
|
363 |
$html .=$top_count.'<span class="top-url">'.$urllink.'</span>';
|
364 |
+
$html .='</li>';
|
365 |
}elseif($scol == "referrers"){
|
366 |
//don't show possible spam/malware
|
367 |
if(preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-(login|cron)\.php|["\'\<\>\{\}\(\)\*\\\\`]|&[lgr]t;|�?3[49];|�?4[01];|�?6[02];|�?9[26];|’|”|"/i',$wtop->top_link)>0 || wassupURI::is_xss($wtop->top_link)){
|
368 |
continue;
|
369 |
}
|
370 |
+
$html .='
|
371 |
+
<li'.$liclass.'>';
|
372 |
$trec=(array)$wtop;
|
373 |
$trec['referrer']=$trec['top_link'];
|
374 |
$reflink=wassupURI::referrer_link((object)$trec,false);
|
375 |
$html .=$top_count.'<span class="top-url">'.$reflink.'</span>';
|
376 |
+
$html .='</li>';
|
377 |
}else{
|
378 |
+
$html .='
|
379 |
+
<li'.$liclass.'>';
|
380 |
if($chars >0 && strlen($wtop->top_item)>$chars){
|
381 |
if(!empty($wtop->top_link)){
|
382 |
$html .=$top_count.'<span class="top-item"><a href="'.wassupURI::cleanURL($wtop->top_link).'" title="'.wassupURI::disarm_attack($wtop->top_item).'">'.stringShortener($wtop->top_item,$chars).'</a></span>';
|
390 |
$html .=$top_count.'<span class="top-item">'.wassupURI::disarm_attack($wtop->top_item).'</span>';
|
391 |
}
|
392 |
}
|
393 |
+
$html .='</li>';
|
394 |
}
|
|
|
395 |
} //end foreach
|
396 |
}elseif($wdebug_mode){
|
397 |
echo "\n".'<!-- No results for '.esc_attr($item).' on query $top_sql='.$top_sql.' found! -->';
|
407 |
*/
|
408 |
function wassup_widget_stat_gettext($statitem,$heading=""){
|
409 |
if(empty($heading)) $heading=__("Top","wassup");
|
410 |
+
if($statitem=="articles"){
|
411 |
+
if($heading == "Top"){
|
412 |
+
$gettext=__("Top Articles","wassup");
|
413 |
+
}elseif($heading == "Latest"){
|
414 |
+
$gettext=__("Latest articles","wassup");
|
415 |
+
}else{
|
416 |
+
$gettext=sprintf(__("%s articles","wassup"),$heading);
|
417 |
+
}
|
418 |
+
}elseif($statitem=="searches"){
|
419 |
+
if($heading == "Top"){
|
420 |
+
$gettext=__("Top Searches","wassup");
|
421 |
+
}elseif($heading == "Latest"){
|
422 |
+
$gettext=__("Latest searches","wassup");
|
423 |
+
}else{
|
424 |
+
$gettext=sprintf(__("%s searches","wassup"),$heading);
|
425 |
+
}
|
426 |
+
}elseif($statitem=="referrers"){
|
427 |
+
if($heading == "Top"){
|
428 |
+
$gettext=__("Top Referrers","wassup");
|
429 |
+
}elseif($heading == "Latest"){
|
430 |
+
$gettext=__("Latest referrers","wassup");
|
431 |
+
}else{
|
432 |
+
$gettext=sprintf(__("%s referrers","wassup"),$heading);
|
433 |
+
}
|
434 |
+
}elseif($statitem=="requests"){
|
435 |
+
if($heading == "Top"){
|
436 |
+
$gettext=__("Top Requests","wassup");
|
437 |
+
}elseif($heading == "Latest"){
|
438 |
+
$gettext=__("Latest URL requests","wassup");
|
439 |
+
}else{
|
440 |
+
$gettext=sprintf(__("%s requests","wassup"),$heading);
|
441 |
+
}
|
442 |
+
}elseif($statitem=="browsers"){
|
443 |
+
if($heading == "Top"){
|
444 |
+
$gettext=__("Top Browsers","wassup");
|
445 |
+
}elseif($heading == "Latest"){
|
446 |
+
$gettext=__("Latest browsers","wassup");
|
447 |
+
}else{
|
448 |
+
$gettext=sprintf(__("%s browsers","wassup"),$heading);
|
449 |
+
}
|
450 |
+
}elseif($statitem=="os"){
|
451 |
+
if($heading == "Top"){
|
452 |
+
$gettext=__("Top OS","wassup");
|
453 |
+
}elseif($heading == "Latest"){
|
454 |
+
$gettext=__("Latest OS","wassup");
|
455 |
+
}else{
|
456 |
+
$gettext=sprintf(__("%s OS","wassup"),$heading);
|
457 |
+
}
|
458 |
+
}elseif($statitem=="locale"){
|
459 |
+
if($heading == "Top"){
|
460 |
+
$gettext=__("Top Locales","wassup");
|
461 |
+
}elseif($heading == "Latest"){
|
462 |
+
$gettext=__("Latest locales","wassup");
|
463 |
+
}else{
|
464 |
+
$gettext=sprintf(__("%s locale","wassup"),$heading);
|
465 |
+
}
|
466 |
+
}else{
|
467 |
+
$gettext=$statitem;
|
468 |
+
}
|
469 |
return $gettext;
|
470 |
}
|
471 |
?>
|
widgets/widgets.php
CHANGED
@@ -37,7 +37,6 @@ if(!class_exists('Wassup_Widget')){
|
|
37 |
* - sets common default options for all child widgets
|
38 |
* - adds wassup-widget.css to page header
|
39 |
* - generate a unique 'wassup_widget_id' for widget caching
|
40 |
-
* - backward compatibility code for widget display in WP 2.2 - 2.8
|
41 |
*
|
42 |
* Wassup_Widget API:
|
43 |
* - Extensions of Wassup_Widget must use the prefix 'wassup_' in the widget class name
|
@@ -524,14 +523,14 @@ class wassup_topstatsWidget extends Wassup_Widget{
|
|
524 |
echo "\n -->";
|
525 |
}
|
526 |
//get widget head and foot content
|
527 |
-
$ulclass="";
|
528 |
$widget_head="";
|
529 |
$widget_foot='';
|
530 |
if(!empty($instance['title'])){
|
531 |
$widget_head=$widget_opt['before_title'].esc_attr($instance['title']).$widget_opt['after_title'];
|
532 |
}
|
533 |
if(!empty($instance['ulclass'])){
|
534 |
-
$ulclass=' class="'.$instance['ulclass'].'"';
|
535 |
}
|
536 |
//get widget main content
|
537 |
$widget_html="";
|
@@ -573,7 +572,7 @@ class wassup_topstatsWidget extends Wassup_Widget{
|
|
573 |
if(!empty($html)){
|
574 |
$title="";
|
575 |
if(empty($widget_head)){
|
576 |
-
if($instance['stat_timeframe']>0 && $instance['stat_timeframe']<1) $item_heading = __("
|
577 |
else $item_heading = __("Top","wassup");
|
578 |
$title=$widget_opt['before_title'].wassup_widget_stat_gettext($item,$item_heading).$widget_opt['after_title'];
|
579 |
}else{
|
37 |
* - sets common default options for all child widgets
|
38 |
* - adds wassup-widget.css to page header
|
39 |
* - generate a unique 'wassup_widget_id' for widget caching
|
|
|
40 |
*
|
41 |
* Wassup_Widget API:
|
42 |
* - Extensions of Wassup_Widget must use the prefix 'wassup_' in the widget class name
|
523 |
echo "\n -->";
|
524 |
}
|
525 |
//get widget head and foot content
|
526 |
+
$ulclass=' class="topstats"';
|
527 |
$widget_head="";
|
528 |
$widget_foot='';
|
529 |
if(!empty($instance['title'])){
|
530 |
$widget_head=$widget_opt['before_title'].esc_attr($instance['title']).$widget_opt['after_title'];
|
531 |
}
|
532 |
if(!empty($instance['ulclass'])){
|
533 |
+
$ulclass=' class="topstats '.$instance['ulclass'].'"';
|
534 |
}
|
535 |
//get widget main content
|
536 |
$widget_html="";
|
572 |
if(!empty($html)){
|
573 |
$title="";
|
574 |
if(empty($widget_head)){
|
575 |
+
if($instance['stat_timeframe']>0 && $instance['stat_timeframe']<1) $item_heading = __("Latest","wassup");
|
576 |
else $item_heading = __("Top","wassup");
|
577 |
$title=$widget_opt['before_title'].wassup_widget_stat_gettext($item,$item_heading).$widget_opt['after_title'];
|
578 |
}else{
|