Version Description
- [Note] Our partnership with HackerNinja.com ended a few days ago, we wish them all the best for their business!
- [New] The new DB API supports natural language dates: day equals today, year equals this year, etc. This brings the Shortcodes add-on to a whole new level of flexibility!
- [Update] Right Now has been renamed Activity Log
- [Fix] We can't believe nobody had noticed a bug in calculating the bounce rate value. Numbers were way off! (thank you, Rob)
- [Fix] User Overview add-on had some problems with sorting by certain columns
- [Fix] Filters were not being reset when multiple shortcodes were being used on the same page (thank you, joachimcarrein)
- [Fix] Pageviews in the Edit Posts panel were not being properly calculated (thank you, Aljoscha)
- [Fix] The Add-Ons page was not working as expected.
Download this release
Release Info
Developer | coolmann |
Plugin | Slimstat Analytics |
Version | 3.5.5 |
Comparing to | |
See all releases |
Code changes from version 3.5.4 to 3.5.5
- admin/config/index.php +4 -4
- admin/css/slimstat.css +1 -74
- admin/js/slimstat.admin.js +1 -32
- admin/view/index.php +4 -3
- admin/view/wp-slimstat-db.php +49 -22
- admin/view/wp-slimstat-reports.php +26 -90
- admin/wp-slimstat-admin.php +8 -9
- databases/maxmind.dat +0 -0
- readme.txt +22 -52
- wp-slimstat.php +4 -4
admin/config/index.php
CHANGED
@@ -55,10 +55,10 @@ switch ($config_tabs[$current_tab-1]){
|
|
55 |
'expand_details' => array('description' => __('Expand Details','wp-slimstat'), 'type' => 'yesno', 'long_description' => __("Expand each row's details by default, insted of on mousehover.",'wp-slimstat')),
|
56 |
'rows_to_show' => array('description' => __('Rows to Display','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Specify the number of items in each report.','wp-slimstat')),
|
57 |
|
58 |
-
'views_right_now_header' => array('description' => __('
|
59 |
-
'refresh_interval' => array('description' => __('Live Stream','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Enable the Live view, which refreshes the
|
60 |
-
'number_results_raw_data' => array('description' => __('Rows to Display','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Specify the number of items in
|
61 |
-
'include_outbound_links_right_now' => array('description' => __('
|
62 |
);
|
63 |
break;
|
64 |
case __('Filters','wp-slimstat'):
|
55 |
'expand_details' => array('description' => __('Expand Details','wp-slimstat'), 'type' => 'yesno', 'long_description' => __("Expand each row's details by default, insted of on mousehover.",'wp-slimstat')),
|
56 |
'rows_to_show' => array('description' => __('Rows to Display','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Specify the number of items in each report.','wp-slimstat')),
|
57 |
|
58 |
+
'views_right_now_header' => array('description' => __('Activity Log','wp-slimstat'), 'type' => 'section_header'),
|
59 |
+
'refresh_interval' => array('description' => __('Live Stream','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Enable the Live view, which refreshes the Activity Log every X seconds. Enter <strong>0</strong> (number zero) to disable this functionality.','wp-slimstat'), 'after_input_field' => __('seconds','wp-slimstat')),
|
60 |
+
'number_results_raw_data' => array('description' => __('Rows to Display','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Specify the number of items in the Activity Log.','wp-slimstat')),
|
61 |
+
'include_outbound_links_right_now' => array('description' => __('Activity Log Extended','wp-slimstat'), 'type' => 'yesno', 'long_description' => __('Choose if you want to see outbound links listed in the Activity Log. It might slow down the rendering of this report.','wp-slimstat'))
|
62 |
);
|
63 |
break;
|
64 |
case __('Filters','wp-slimstat'):
|
admin/css/slimstat.css
CHANGED
@@ -586,77 +586,4 @@
|
|
586 |
#ui-datepicker-div{display:none;}.ui-datepicker{background-color:#fff;border:1px solid #ccc;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-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.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:700;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;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;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}
|
587 |
|
588 |
/* Fontello - Custom Icon Fonts for SlimStat | Uses Fontelico (C) 2012 by Fontello project, Elusive (C) 2013 by Aristeides Stathopoulos, Font Awesome (C) 2012 by Dave Gandy | http://www.fontello.com */
|
589 |
-
@font-face{font-family:slimstat;src:url(fontello.eot),url(fontello.eot#iefix) format('embedded-opentype'),url(fontello.svg#fontello) format('svg'),url(fontello.woff) format('woff'),url(fontello.ttf) format('truetype');font-weight:400;font-style:normal}[class*=" slimstat-font-"]:before,[class^=slimstat-font-]:before{font-family:slimstat;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;}.slimstat-font-spin1:before{content:'\e800'}.slimstat-font-clock:before{content:'\e812'}.slimstat-font-search:before{content:'\e802'}.slimstat-font-cancel:before{content:'\e803'}.slimstat-font-download:before{content:'\e804'}.slimstat-font-upload:before{content:'\e805'}.slimstat-font-download-cloud:before{content:'\e806'}.slimstat-font-upload-cloud:before{content:'\e807'}.slimstat-font-location-1:before{content:'\e808'}.slimstat-font-arrows-cw-1:before{content:'\e801'}.slimstat-font-login:before{content:'\e80a'}.slimstat-font-logout:before{content:'\e80b'}.slimstat-font-angle-left:before{content:'\e80c'}.slimstat-font-angle-right:before{content:'\e80d'}.slimstat-font-angle-double-left:before{content:'\e80e'}.slimstat-font-angle-double-right:before{content:'\e80f'}.slimstat-font-arrows-cw:before{content:'\e810'}.slimstat-font-doc:before{content:'\e811'}.slimstat-font-spin3:before{content:'\e809'}.animate-spin{-moz-animation:spin 3s infinite linear;-o-animation:spin 3s infinite linear;-webkit-animation:spin 3s infinite linear;animation:spin 3s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
/*
|
601 |
-
|
602 |
-
.inside span.date-and-other{max-width:48%}
|
603 |
-
.inside span.date-and-other em{width:100%}
|
604 |
-
|
605 |
-
#slimstat_interval_block{display:none}
|
606 |
-
.current-filters{clear:both;overflow:hidden}
|
607 |
-
.current-filters code{padding:2px 3px}
|
608 |
-
.current-filters a{vertical-align:middle}
|
609 |
-
|
610 |
-
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next{width:1em}
|
611 |
-
.ui-datepicker .ui-datepicker-prev{left:15px}
|
612 |
-
.ui-datepicker .ui-datepicker-next{right:7px}
|
613 |
-
.ui-datepicker td span, .ui-datepicker td a{text-align:center}
|
614 |
-
.ui-state-highlight {background-color: #777;color: #eee}
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
.postbox.flex{height:auto;width:100%}
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
.postbox.slimstat.flex .inside{height:100%}
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
a.image{display:inline-block;height:16px;margin-left:5px;vertical-align:text-bottom}
|
639 |
-
a.image.first{margin-left:0}
|
640 |
-
|
641 |
-
.box-help{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEiSURBVHjanFNLboMwEB075iM2SIiw6ilylShn4EwsWUe5Sk/RFbAAiQW/4M5ri2Uh3Kp5EvJorDfznpkRZVlSGIbnpmnuJwYRjWRBCEHrulLf9xTHMeLgyUjT9DZNU608zztXVfXOpyForU08zzPh7of8lUcfcLIsu8i2bR82GQScAArhDudG3oA8q35IhtiSNsHOucBKhNp73gh5nr/Z+aIoPg5qjPKoy57sygESfodhML73XR2dDWCBfN8nl1xXZ6MA8pVSh49lk11K5F8v/RvZWHiFiLngEfhW4AIsOF9fSmMhoNcRKJait2r/sQDwTmnJS3LdzzkKHs2FDewMb+RVLctSc5FL13V3Jp74GzmmKIpcvzfghs8kSW5cpP4UYAC48qDxuux3/wAAAABJRU5ErkJggg==)}
|
642 |
-
.inline-help{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADzSURBVHjaNFDLrYMwEFwb87GQnEuOuQAl5EYFr4vUFqpIDZSAhKjBPmDEL29nFUZaGe/Mzo5RXdc953n+nOfpvox930kpRcYY4qtKkiSUZflnYozv4zju3ARBVVWJaJomufPgfVmWt2GnGwulibNtW0rTlMZxlDu+2exmWB2ttbRtmxBwAokIcM6yjLz3UaOptSZ2lrNpGqrrWsTosRs550hjgl1lNR6BwgAKyPOc1nUlHUIgrL4AIXA9DoVYcLSYAJDxygUBAK4oCmvYzXPwx7Wi73tZCyF6AP9Lb3j6xaE/TDgmvsMwiOiXEzkCO77+BRgAqD6g60Uv2X0AAAAASUVORK5CYII=)}
|
643 |
-
.box-refresh{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM3OEFBNTNBQUNEQzExRTJBNjM2QUU1MEUyRTY0REQzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM3OEFBNTNCQUNEQzExRTJBNjM2QUU1MEUyRTY0REQzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Mzc4QUE1MzhBQ0RDMTFFMkE2MzZBRTUwRTJFNjRERDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Mzc4QUE1MzlBQ0RDMTFFMkE2MzZBRTUwRTJFNjRERDMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7fLZxBAAAAVUlEQVR42mL4//8/AzI2TJ35H10MhJkYsACjtFn/0cUYQapxSZ6blcYI56BbB2Jjsx6r1cgmwWxiwqYImzOYcJmA0zOEPISiEFkxio9xuRGb1QABBgAfi12N9rv+cAAAAABJRU5ErkJggg==)}
|
644 |
-
.box-header-button{float:right;height:10px;margin:7px 5px 7px 0;width:10px}
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
.more-modal-window{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADXppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMi4yLWMwNjMgNTMuMzUyNjI0LCAyMDA4LzA3LzMwLTE4OjEyOjE4ICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOklwdGM0eG1wQ29yZT0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcENvcmUvMS4wL3htbG5zLyIKICAgeG1wUmlnaHRzOk1hcmtlZD0iRmFsc2UiCiAgIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9IiIKICAgcGhvdG9zaG9wOkF1dGhvcnNQb3NpdGlvbj0iIj4KICAgPGRjOnJpZ2h0cz4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCIvPgogICAgPC9yZGY6QWx0PgogICA8L2RjOnJpZ2h0cz4KICAgPGRjOmNyZWF0b3I+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpPlRob21hcyBOaWVsc2VuPC9yZGY6bGk+CiAgICA8L3JkZjpTZXE+CiAgIDwvZGM6Y3JlYXRvcj4KICAgPGRjOnRpdGxlPgogICAgPHJkZjpBbHQ+CiAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5XUCBTbGltc3RhdCBJY29uczwvcmRmOmxpPgogICAgPC9yZGY6QWx0PgogICA8L2RjOnRpdGxlPgogICA8eG1wUmlnaHRzOlVzYWdlVGVybXM+CiAgICA8cmRmOkFsdD4KICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiLz4KICAgIDwvcmRmOkFsdD4KICAgPC94bXBSaWdodHM6VXNhZ2VUZXJtcz4KICAgPElwdGM0eG1wQ29yZTpDcmVhdG9yQ29udGFjdEluZm8KICAgIElwdGM0eG1wQ29yZTpDaUFkckV4dGFkcj0iIgogICAgSXB0YzR4bXBDb3JlOkNpQWRyQ2l0eT0iIgogICAgSXB0YzR4bXBDb3JlOkNpQWRyUmVnaW9uPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJQY29kZT0iIgogICAgSXB0YzR4bXBDb3JlOkNpQWRyQ3RyeT0iIgogICAgSXB0YzR4bXBDb3JlOkNpVGVsV29yaz0iIgogICAgSXB0YzR4bXBDb3JlOkNpRW1haWxXb3JrPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lVcmxXb3JrPSJ3d3cuYm9ndC5kayIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+gc/bLwAAAStJREFUeNpMUM1KQlEQ/s7PtauIWNHGB6i2QT5IoRS0jegdwhCkV2gRtIwS0lcI2teywAdwUZjlven13ns8zUwunM3MOfN98803tvf8vvcyGJ4GxgQegFsswGG1lpzlLqvv1m7s62B43n16OwsLFloB5WIBTIhnKTwVyTyDMcrrwBrLIEWgzUoJ/c4RHttNrJeLQuQeYyyRPIOq5RAblRBb1RKc81JTC+NoxgreOrcQuftWg6aswRDLWIW7i0OM4zma7a4QZWMlyxNgaYCDa/5Ty7c1RiOixY87PZF9uGyAVU6u+viazBBNUzYDEoFid6PJVHb6/P4V4AflnzgR54yxae7yJM3E3YgmHLS6IvV/Hg/uEcbZ+k7tWiuV0AkCrBzcrBx8f7t2+yfAAKhcgK464nRcAAAAAElFTkSuQmCC);float:right;margin:7px 5px}
|
649 |
-
.remove-filter,.close-dialog{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADXppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMi4yLWMwNjMgNTMuMzUyNjI0LCAyMDA4LzA3LzMwLTE4OjEyOjE4ICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOklwdGM0eG1wQ29yZT0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcENvcmUvMS4wL3htbG5zLyIKICAgeG1wUmlnaHRzOk1hcmtlZD0iRmFsc2UiCiAgIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9IiIKICAgcGhvdG9zaG9wOkF1dGhvcnNQb3NpdGlvbj0iIj4KICAgPGRjOnJpZ2h0cz4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCIvPgogICAgPC9yZGY6QWx0PgogICA8L2RjOnJpZ2h0cz4KICAgPGRjOmNyZWF0b3I+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpPlRob21hcyBOaWVsc2VuPC9yZGY6bGk+CiAgICA8L3JkZjpTZXE+CiAgIDwvZGM6Y3JlYXRvcj4KICAgPGRjOnRpdGxlPgogICAgPHJkZjpBbHQ+CiAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5XUCBTbGltc3RhdCBJY29uczwvcmRmOmxpPgogICAgPC9yZGY6QWx0PgogICA8L2RjOnRpdGxlPgogICA8eG1wUmlnaHRzOlVzYWdlVGVybXM+CiAgICA8cmRmOkFsdD4KICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiLz4KICAgIDwvcmRmOkFsdD4KICAgPC94bXBSaWdodHM6VXNhZ2VUZXJtcz4KICAgPElwdGM0eG1wQ29yZTpDcmVhdG9yQ29udGFjdEluZm8KICAgIElwdGM0eG1wQ29yZTpDaUFkckV4dGFkcj0iIgogICAgSXB0YzR4bXBDb3JlOkNpQWRyQ2l0eT0iIgogICAgSXB0YzR4bXBDb3JlOkNpQWRyUmVnaW9uPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJQY29kZT0iIgogICAgSXB0YzR4bXBDb3JlOkNpQWRyQ3RyeT0iIgogICAgSXB0YzR4bXBDb3JlOkNpVGVsV29yaz0iIgogICAgSXB0YzR4bXBDb3JlOkNpRW1haWxXb3JrPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lVcmxXb3JrPSJ3d3cuYm9ndC5kayIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+gc/bLwAAAW9JREFUeNqkk99KwzAUxpM0bWcdeDNv9ypeeqE45/8/iLAn2js4REGGAxGF3fg6GwOHW7dSm/gdm2gXO2924MfW03O+JF9OudaarRLS/kmnU6aVYozz5dVYTFYqTPj+okAax6zXaq3Hw2GHSzlD6prSTnsIgRsZhnyjXr/abrfnXhCYHSgl0Xw/GQx2hJRW+LIgEoI7sK+ShGVJ4qHnGM9ZLoBtY+WImo0AvSRzzoCwzfYYWHnNHtV68AkOwCPYMrkTk/d/mvPog1NafcFExDtogF5B5MLxgZqbYGITwikYg13wWnIHT2Cv2FwmQEG3MC3Jf4C5mxR/roqxB+OHG+fGTH+ZQGXB7TxezLlZwdgOCNxJpN/bErfp2QPPzu1oY7CyO+AY402dZczQB02QgBg0wJt9r1BLPcUdpH4UNYNqtSvyUT503B6bK+6qNOWoPbJzwL+/RhCPRqQuMGHqn4+PUy33PB3VauxXYIX4EmAAzUqWQZaDhywAAAAASUVORK5CYII=) 75% 0 no-repeat scroll;display:inline-block;height:16px;width:16px}
|
650 |
-
|
651 |
-
Edit Posts screen
|
652 |
-
.widefat th.column-wp-slimstat,.widefat td.column-wp-slimstat{text-align:center;width:3em}
|
653 |
-
|
654 |
-
RTL compatibility
|
655 |
-
.rtl #slimstat-filters .nowrap, .rtl #slimstat-filters input.button-primary{float:right}
|
656 |
-
.rtl #analytics-icon,.rtl .wrap form p span,.rtl .filters-title,.rtl .filter-item,.rtl .postbox,.rtl .legend-title,.rtl .little-color-box,.rtl .form-table span.block-element{float:right}
|
657 |
-
.rtl .box-help{float:left;margin:7px 0 7px 5px}
|
658 |
-
|
659 |
-
.rtl .postbox p span{float:left;margin-right:1%}
|
660 |
-
.rtl .postbox .inline-help{float:right;margin: 0 0 0 5px}
|
661 |
-
|
662 |
-
*/
|
586 |
#ui-datepicker-div{display:none;}.ui-datepicker{background-color:#fff;border:1px solid #ccc;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-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.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:700;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;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;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}
|
587 |
|
588 |
/* Fontello - Custom Icon Fonts for SlimStat | Uses Fontelico (C) 2012 by Fontello project, Elusive (C) 2013 by Aristeides Stathopoulos, Font Awesome (C) 2012 by Dave Gandy | http://www.fontello.com */
|
589 |
+
@font-face{font-family:slimstat;src:url(fontello.eot),url(fontello.eot#iefix) format('embedded-opentype'),url(fontello.svg#fontello) format('svg'),url(fontello.woff) format('woff'),url(fontello.ttf) format('truetype');font-weight:400;font-style:normal}[class*=" slimstat-font-"]:before,[class^=slimstat-font-]:before{font-family:slimstat;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;}.slimstat-font-spin1:before{content:'\e800'}.slimstat-font-clock:before{content:'\e812'}.slimstat-font-search:before{content:'\e802'}.slimstat-font-cancel:before{content:'\e803'}.slimstat-font-download:before{content:'\e804'}.slimstat-font-upload:before{content:'\e805'}.slimstat-font-download-cloud:before{content:'\e806'}.slimstat-font-upload-cloud:before{content:'\e807'}.slimstat-font-location-1:before{content:'\e808'}.slimstat-font-arrows-cw-1:before{content:'\e801'}.slimstat-font-login:before{content:'\e80a'}.slimstat-font-logout:before{content:'\e80b'}.slimstat-font-angle-left:before{content:'\e80c'}.slimstat-font-angle-right:before{content:'\e80d'}.slimstat-font-angle-double-left:before{content:'\e80e'}.slimstat-font-angle-double-right:before{content:'\e80f'}.slimstat-font-arrows-cw:before{content:'\e810'}.slimstat-font-doc:before{content:'\e811'}.slimstat-font-spin3:before{content:'\e809'}.animate-spin{-moz-animation:spin 3s infinite linear;-o-animation:spin 3s infinite linear;-webkit-animation:spin 3s infinite linear;animation:spin 3s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/slimstat.admin.js
CHANGED
@@ -223,12 +223,6 @@ var SlimStatAdmin = {
|
|
223 |
SlimStatAdmin._refresh_timer[1] = SlimStatAdminParams.refresh_interval%60;
|
224 |
refresh_handle = window.setTimeout("SlimStatAdmin.refresh_countdown();", 1000);
|
225 |
}
|
226 |
-
},
|
227 |
-
|
228 |
-
hacker_ninja_show_result: function(id){
|
229 |
-
return function(response){
|
230 |
-
jQuery(id).removeClass('blink').html(response);
|
231 |
-
}
|
232 |
}
|
233 |
}
|
234 |
|
@@ -332,6 +326,7 @@ jQuery(function(){
|
|
332 |
changeMonth: true,
|
333 |
changeYear: true,
|
334 |
dateFormat: 'yy-m-d',
|
|
|
335 |
nextText: '»',
|
336 |
prevText: '«',
|
337 |
showOn: 'both',
|
@@ -412,32 +407,6 @@ jQuery(function(){
|
|
412 |
});
|
413 |
});
|
414 |
|
415 |
-
// HackerNinja.com
|
416 |
-
jQuery(document).on('click', '.button-hacker-ninja', function(e){
|
417 |
-
e.preventDefault();
|
418 |
-
data = {action: 'slimstat_load_report', report_id: 'slim_p1_16', security: jQuery('#meta-box-order-nonce').val(), 'run_scan': '00'};
|
419 |
-
jQuery('#slim_p1_16 .inside').html('<p class="loading"></p>');
|
420 |
-
jQuery.ajax({
|
421 |
-
url: ajaxurl,
|
422 |
-
type: 'post',
|
423 |
-
async: false,
|
424 |
-
data: data
|
425 |
-
}).done(function(response){
|
426 |
-
jQuery('#slim_p1_16 .inside').html(response);
|
427 |
-
});
|
428 |
-
|
429 |
-
/* jQuery('#slim_p1_16 .blink').each(function(){
|
430 |
-
data['run_scan'] = jQuery(this).attr('id');
|
431 |
-
jQuery.ajax({
|
432 |
-
url: ajaxurl,
|
433 |
-
type: 'post',
|
434 |
-
async: true,
|
435 |
-
data: data,
|
436 |
-
success: SlimStatAdmin.hacker_ninja_show_result('#'+data['run_scan'])
|
437 |
-
});
|
438 |
-
}); */
|
439 |
-
});
|
440 |
-
|
441 |
// SlimScroll init
|
442 |
jQuery('[id^=slim_]:not(.tall) .inside').slimScroll({
|
443 |
distance: '2px',
|
223 |
SlimStatAdmin._refresh_timer[1] = SlimStatAdminParams.refresh_interval%60;
|
224 |
refresh_handle = window.setTimeout("SlimStatAdmin.refresh_countdown();", 1000);
|
225 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
}
|
227 |
}
|
228 |
|
326 |
changeMonth: true,
|
327 |
changeYear: true,
|
328 |
dateFormat: 'yy-m-d',
|
329 |
+
maxDate: new Date,
|
330 |
nextText: '»',
|
331 |
prevText: '«',
|
332 |
showOn: 'both',
|
407 |
});
|
408 |
});
|
409 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
410 |
// SlimScroll init
|
411 |
jQuery('[id^=slim_]:not(.tall) .inside').slimScroll({
|
412 |
distance: '2px',
|
admin/view/index.php
CHANGED
@@ -89,6 +89,10 @@
|
|
89 |
<?php foreach(wp_slimstat_db::$filters_normalized['date'] as $a_key => $a_value): if (!empty($a_value) && !empty(wp_slimstat_db::$filters_normalized['date'][$a_key])): ?>
|
90 |
<input type="hidden" name="fs[<?php echo $a_key ?>]" class="slimstat-post-filter" value="equals <?php echo $a_value ?>"/>
|
91 |
<?php endif; endforeach; ?>
|
|
|
|
|
|
|
|
|
92 |
</form>
|
93 |
|
94 |
<?php
|
@@ -146,9 +150,6 @@
|
|
146 |
case 'slim_p1_15':
|
147 |
wp_slimstat_reports::report_header($a_box_id, 'normal', __("WP SlimStat retrieves live information from Alexa, Facebook and Google, to measures your site's rankings. Values are updated every 12 hours. Filters set above don't apply to this report.",'wp-slimstat'));
|
148 |
break;
|
149 |
-
case 'slim_p1_16':
|
150 |
-
wp_slimstat_reports::report_header($a_box_id, 'normal', __("We have teamed up with HackerNinja.com to offer you a free website security scan. By clicking on Start Free Scan, your website will be analyzed to detect viruses and other treats. Please note that no confidential information is being sent to HackerNinja.",'wp-slimstat'));
|
151 |
-
break;
|
152 |
case 'slim_p2_01':
|
153 |
wp_slimstat_reports::report_header($a_box_id, 'wide chart', wp_slimstat_reports::$chart_tooltip, wp_slimstat_reports::chart_title(__('Human Visits', 'wp-slimstat')));
|
154 |
break;
|
89 |
<?php foreach(wp_slimstat_db::$filters_normalized['date'] as $a_key => $a_value): if (!empty($a_value) && !empty(wp_slimstat_db::$filters_normalized['date'][$a_key])): ?>
|
90 |
<input type="hidden" name="fs[<?php echo $a_key ?>]" class="slimstat-post-filter" value="equals <?php echo $a_value ?>"/>
|
91 |
<?php endif; endforeach; ?>
|
92 |
+
|
93 |
+
<?php foreach(wp_slimstat_db::$filters_normalized['misc'] as $a_key => $a_value): if (!empty($a_value) && !empty(wp_slimstat_db::$filters_normalized['misc'][$a_key])): ?>
|
94 |
+
<input type="hidden" name="fs[<?php echo $a_key ?>]" class="slimstat-post-filter" value="equals <?php echo $a_value ?>"/>
|
95 |
+
<?php endif; endforeach; ?>
|
96 |
</form>
|
97 |
|
98 |
<?php
|
150 |
case 'slim_p1_15':
|
151 |
wp_slimstat_reports::report_header($a_box_id, 'normal', __("WP SlimStat retrieves live information from Alexa, Facebook and Google, to measures your site's rankings. Values are updated every 12 hours. Filters set above don't apply to this report.",'wp-slimstat'));
|
152 |
break;
|
|
|
|
|
|
|
153 |
case 'slim_p2_01':
|
154 |
wp_slimstat_reports::report_header($a_box_id, 'wide chart', wp_slimstat_reports::$chart_tooltip, wp_slimstat_reports::chart_title(__('Human Visits', 'wp-slimstat')));
|
155 |
break;
|
admin/view/wp-slimstat-db.php
CHANGED
@@ -10,18 +10,7 @@ class wp_slimstat_db {
|
|
10 |
public static $formats = array('decimal' => ',', 'thousand' => '.');
|
11 |
|
12 |
// Filters as SQL clauses
|
13 |
-
public static $sql_filters = array(
|
14 |
-
'from' => array(
|
15 |
-
'browsers' => '',
|
16 |
-
'screenres' => '',
|
17 |
-
'content_info' => '',
|
18 |
-
'outbound' => '',
|
19 |
-
'all_tables' => '',
|
20 |
-
'all_other_tables' => ''
|
21 |
-
),
|
22 |
-
'where' => '',
|
23 |
-
'where_time_range' => ''
|
24 |
-
);
|
25 |
|
26 |
/*
|
27 |
* Initializes the environment, sets the filters
|
@@ -93,14 +82,14 @@ class wp_slimstat_db {
|
|
93 |
'strtotime' => 0
|
94 |
);
|
95 |
|
96 |
-
//
|
97 |
-
|
98 |
|
99 |
// Normalize the input (filters)
|
100 |
self::$filters_normalized = self::parse_filters($_filters);
|
101 |
|
102 |
-
//
|
103 |
-
self::$filters_normalized = apply_filters('
|
104 |
|
105 |
if (empty(self::$filters_normalized['date']['interval'])){
|
106 |
if (!empty(self::$filters_normalized['date']['hour'])){
|
@@ -127,7 +116,7 @@ class wp_slimstat_db {
|
|
127 |
self::$filters_normalized['utime']['end'] = self::$filters_normalized['utime']['start'] + 86399;
|
128 |
self::$filters_normalized['utime']['type'] = 'd';
|
129 |
}
|
130 |
-
else if(!empty(self::$filters_normalized['date']['year'])){
|
131 |
self::$filters_normalized['utime']['start'] = mktime(0, 0, 0, 1, 1, self::$filters_normalized['date']['year']);
|
132 |
self::$filters_normalized['utime']['end'] = mktime(0, 0, 0, 1, 1, self::$filters_normalized['date']['year']+1)-1;
|
133 |
self::$filters_normalized['utime']['type'] = 'Y';
|
@@ -206,7 +195,19 @@ class wp_slimstat_db {
|
|
206 |
}
|
207 |
|
208 |
// Now let's translate our filters into SQL clauses
|
209 |
-
self::$sql_filters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
foreach (self::$filters_normalized['columns'] as $a_filter_column => $a_filter_data){
|
211 |
$a_filter_empty = '0';
|
212 |
|
@@ -611,16 +612,42 @@ class wp_slimstat_db {
|
|
611 |
}
|
612 |
|
613 |
switch($a_filter[1]){
|
614 |
-
case 'strtotime':
|
615 |
$custom_date = strtotime($a_filter[3].' UTC');
|
616 |
-
$filters_normalized['date']['day'] =
|
617 |
-
$filters_normalized['date']['month'] =
|
618 |
-
$filters_normalized['date']['year'] =
|
619 |
break;
|
620 |
case 'hour':
|
621 |
case 'day':
|
622 |
case 'month':
|
623 |
case 'year':
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
624 |
case 'interval':
|
625 |
$filters_normalized['date'][$a_filter[1]] = intval($a_filter[3]);
|
626 |
break;
|
10 |
public static $formats = array('decimal' => ',', 'thousand' => '.');
|
11 |
|
12 |
// Filters as SQL clauses
|
13 |
+
public static $sql_filters = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
/*
|
16 |
* Initializes the environment, sets the filters
|
82 |
'strtotime' => 0
|
83 |
);
|
84 |
|
85 |
+
// Filter the... filters
|
86 |
+
$_filters = apply_filters('slimstat_db_pre_filters', $_filters);
|
87 |
|
88 |
// Normalize the input (filters)
|
89 |
self::$filters_normalized = self::parse_filters($_filters);
|
90 |
|
91 |
+
// Filter the array of normalized filters
|
92 |
+
self::$filters_normalized = apply_filters('slimstat_db_filters_normalized', self::$filters_normalized, $_filters);
|
93 |
|
94 |
if (empty(self::$filters_normalized['date']['interval'])){
|
95 |
if (!empty(self::$filters_normalized['date']['hour'])){
|
116 |
self::$filters_normalized['utime']['end'] = self::$filters_normalized['utime']['start'] + 86399;
|
117 |
self::$filters_normalized['utime']['type'] = 'd';
|
118 |
}
|
119 |
+
else if(!empty(self::$filters_normalized['date']['year']) && empty(self::$filters_normalized['date']['month'])){
|
120 |
self::$filters_normalized['utime']['start'] = mktime(0, 0, 0, 1, 1, self::$filters_normalized['date']['year']);
|
121 |
self::$filters_normalized['utime']['end'] = mktime(0, 0, 0, 1, 1, self::$filters_normalized['date']['year']+1)-1;
|
122 |
self::$filters_normalized['utime']['type'] = 'Y';
|
195 |
}
|
196 |
|
197 |
// Now let's translate our filters into SQL clauses
|
198 |
+
self::$sql_filters = array(
|
199 |
+
'from' => array(
|
200 |
+
'browsers' => '',
|
201 |
+
'screenres' => '',
|
202 |
+
'content_info' => '',
|
203 |
+
'outbound' => '',
|
204 |
+
'all_tables' => '',
|
205 |
+
'all_other_tables' => ''
|
206 |
+
),
|
207 |
+
'where' => '',
|
208 |
+
'where_time_range' => ' AND (t1.dt BETWEEN '.self::$filters_normalized['utime']['start'].' AND '.self::$filters_normalized['utime']['end'].')'
|
209 |
+
);
|
210 |
+
|
211 |
foreach (self::$filters_normalized['columns'] as $a_filter_column => $a_filter_data){
|
212 |
$a_filter_empty = '0';
|
213 |
|
612 |
}
|
613 |
|
614 |
switch($a_filter[1]){
|
615 |
+
case 'strtotime':
|
616 |
$custom_date = strtotime($a_filter[3].' UTC');
|
617 |
+
$filters_normalized['date']['day'] = date('j', $custom_date);
|
618 |
+
$filters_normalized['date']['month'] = date('n', $custom_date);
|
619 |
+
$filters_normalized['date']['year'] = date('Y', $custom_date);
|
620 |
break;
|
621 |
case 'hour':
|
622 |
case 'day':
|
623 |
case 'month':
|
624 |
case 'year':
|
625 |
+
if (is_numeric($a_filter[3])){
|
626 |
+
$filters_normalized['date'][$a_filter[1]] = intval($a_filter[3]);
|
627 |
+
}
|
628 |
+
else{
|
629 |
+
// Try to apply strtotime to value
|
630 |
+
switch($a_filter[1]){
|
631 |
+
case 'hour':
|
632 |
+
$filters_normalized['date'][$a_filter[1]] = date('H', strtotime($a_filter[3]));
|
633 |
+
break;
|
634 |
+
case 'day':
|
635 |
+
$filters_normalized['date'][$a_filter[1]] = date('j', strtotime($a_filter[3]));
|
636 |
+
break;
|
637 |
+
case 'month':
|
638 |
+
$filters_normalized['date'][$a_filter[1]] = date('n', strtotime($a_filter[3]));
|
639 |
+
break;
|
640 |
+
case 'year':
|
641 |
+
$filters_normalized['date'][$a_filter[1]] = date('Y', strtotime($a_filter[3]));
|
642 |
+
break;
|
643 |
+
default:
|
644 |
+
break;
|
645 |
+
}
|
646 |
+
if ($filters_normalized['date'][$a_filter[1]] === false){
|
647 |
+
unset($filters_normalized['date'][$a_filter[1]]);
|
648 |
+
}
|
649 |
+
}
|
650 |
+
break;
|
651 |
case 'interval':
|
652 |
$filters_normalized['date'][$a_filter[1]] = intval($a_filter[3]);
|
653 |
break;
|
admin/view/wp-slimstat-reports.php
CHANGED
@@ -25,7 +25,7 @@ class wp_slimstat_reports{
|
|
25 |
*/
|
26 |
public static function init(){
|
27 |
self::$screen_names = array(
|
28 |
-
1 => __('
|
29 |
2 => __('Overview','wp-slimstat'),
|
30 |
3 => __('Visitors','wp-slimstat'),
|
31 |
4 => __('Content','wp-slimstat'),
|
@@ -47,7 +47,6 @@ class wp_slimstat_reports{
|
|
47 |
'slim_p1_12' => __('Top Search Terms','wp-slimstat'),
|
48 |
'slim_p1_13' => __('Top Countries','wp-slimstat'),
|
49 |
'slim_p1_15' => __('Rankings','wp-slimstat'),
|
50 |
-
'slim_p1_16' => __('Security Scan','wp-slimstat'),
|
51 |
'slim_p1_17' => __('Top Language Families','wp-slimstat'),
|
52 |
'slim_p2_01' => __('Human Visits (chart)','wp-slimstat'),
|
53 |
'slim_p2_02' => __('At a Glance','wp-slimstat'),
|
@@ -100,13 +99,16 @@ class wp_slimstat_reports{
|
|
100 |
'slim_p4_21' => __('Top Outbound Links and Downloads','wp-slimstat'),
|
101 |
'slim_p4_22' => __('Your Website','wp-slimstat'),
|
102 |
'slim_p6_01' => __('World Map','wp-slimstat'),
|
103 |
-
'slim_p7_02' => __('
|
104 |
);
|
105 |
|
106 |
|
107 |
if (!empty($_GET['page'])){
|
108 |
self::$current_tab = intval(str_replace('wp-slim-view-', '', $_GET['page']));
|
109 |
}
|
|
|
|
|
|
|
110 |
self::$view_url = ((wp_slimstat::$options['use_separate_menu'] == 'yes')?'admin.php':'options.php').'?page=wp-slim-view-'.self::$current_tab;
|
111 |
|
112 |
// TO BE REVIEWED AND CLEANED UP
|
@@ -124,32 +126,29 @@ class wp_slimstat_reports{
|
|
124 |
}
|
125 |
self::$all_reports = (empty(self::$all_reports) || empty(self::$all_reports[0]))?array():explode(',', self::$all_reports[0]);
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
self::$all_reports = array('slim_p2_01','slim_p2_02','slim_p2_03','slim_p2_04','slim_p2_06','slim_p2_05','slim_p2_07','slim_p2_09','slim_p2_10','slim_p2_12','slim_p2_13','slim_p2_14','slim_p2_15','slim_p2_16','slim_p2_17','slim_p2_18','slim_p2_19','slim_p2_20','slim_p2_21');
|
137 |
-
break;
|
138 |
-
case 4:
|
139 |
-
self::$all_reports = array('slim_p4_01','slim_p4_22','slim_p1_06','slim_p4_07','slim_p4_02','slim_p4_03','slim_p4_05','slim_p4_04','slim_p4_06','slim_p4_08','slim_p4_12','slim_p4_13','slim_p4_14','slim_p4_15','slim_p4_16','slim_p4_17','slim_p4_18','slim_p4_11','slim_p4_10','slim_p4_19','slim_p4_20','slim_p4_21');
|
140 |
-
break;
|
141 |
-
case 5:
|
142 |
-
self::$all_reports = array('slim_p3_01','slim_p3_02','slim_p3_03','slim_p3_04','slim_p3_06','slim_p3_05','slim_p3_08','slim_p3_10','slim_p3_09','slim_p3_11');
|
143 |
-
break;
|
144 |
-
default:
|
145 |
-
}
|
146 |
-
}
|
147 |
|
148 |
// Some boxes are hidden by default
|
149 |
-
if (!empty($_GET['page']) && strpos($_GET['page'], 'wp-slim-view-') !== false)
|
150 |
self::$hidden_reports = get_user_option("metaboxhidden_{$page_location}_page_wp-slim-view-".self::$current_tab, $user->ID);
|
151 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
self::$hidden_reports = get_user_option("metaboxhidden_{$page_location}", $user->ID);
|
|
|
153 |
|
154 |
// Default values
|
155 |
if (self::$hidden_reports === false){
|
@@ -294,7 +293,7 @@ class wp_slimstat_reports{
|
|
294 |
|
295 |
if (!empty($filters_dropdown)){
|
296 |
foreach($filters_dropdown as $a_filter_label => $a_filter_details){
|
297 |
-
if (strpos($a_filter_label, '
|
298 |
continue;
|
299 |
}
|
300 |
|
@@ -971,66 +970,6 @@ class wp_slimstat_reports{
|
|
971 |
<p><?php _e('Alexa Popularity', 'wp-slimstat') ?> <span><?php echo number_format($rankings['alexa_popularity'], 0, wp_slimstat_db::$formats['decimal'], wp_slimstat_db::$formats['thousand']) ?></span></p><?php
|
972 |
}
|
973 |
|
974 |
-
public static function show_hacker_ninja($_id = 'p0'){
|
975 |
-
$hn_urls = array('hn01' => 'http://www.hackerninja.com/scanner/crawler/launcher_bing_bot.php', 'hn02' => 'http://www.hackerninja.com/scanner/crawler/launcher_clamav_scanner.php', 'hn03' => 'http://www.hackerninja.com/scanner/crawler/launcher_google_bot.php', 'hn04' => 'http://www.hackerninja.com/scanner/crawler/launcher_hostile_strings.php', 'hn05' => 'http://www.hackerninja.com/scanner/crawler/launcher_vanilla_bot.php', 'hn06' => 'http://www.hackerninja.com/scanner/crawler/scan_google_malware_list.php', 'hn07' => 'http://www.hackerninja.com/scanner/crawler/scan_external_links.php', 'hn08' => 'http://www.hackerninja.com/scanner/crawler/scan_external_links.php');
|
976 |
-
|
977 |
-
if (!isset($_POST['run_scan']) && wp_slimstat::$options['enable_hacker_ninja'] != 'yes'){
|
978 |
-
echo '<p class="nodata"><a class="button-hacker-ninja button-secondary" href="#">Enable Free Scan</a><br><br><a target="_blank" href="http://www.hackerninja.com/wp-slimstat-hackerninja/">Get instant email notifications of malware,<br> infections and hostile attacks</a></p>';
|
979 |
-
}
|
980 |
-
else{
|
981 |
-
if (wp_slimstat::$options['enable_hacker_ninja'] != 'yes'){
|
982 |
-
wp_slimstat::$options['enable_hacker_ninja'] = 'yes';
|
983 |
-
}
|
984 |
-
$run_scan = !empty($_POST['run_scan'])?$_POST['run_scan']:'00';
|
985 |
-
|
986 |
-
switch($run_scan){
|
987 |
-
case '00': ?>
|
988 |
-
<p><?php _e('Bing Test', 'wp-slimstat') ?> <span id="hn01" class="blink">Loading</span></p>
|
989 |
-
<p><?php _e('AntiVirus Scan', 'wp-slimstat') ?> <span id="hn02" class="blink">Loading</span></p>
|
990 |
-
<p><?php _e('Google Bot Test', 'wp-slimstat') ?> <span id="hn03" class="blink">Loading</span></p>
|
991 |
-
<p><?php _e('Scan for Hostile Strings', 'wp-slimstat') ?> <span id="hn04" class="blink">Loading</span></p>
|
992 |
-
<p><?php _e('Generic Web Bot test', 'wp-slimstat') ?> <span id="hn05" class="blink">Loading</span></p>
|
993 |
-
<p><?php _e('Google Safe Browsing List', 'wp-slimstat') ?> <span id="hn06" class="blink">Loading</span></p>
|
994 |
-
<p><?php _e('Hostile External Links', 'wp-slimstat') ?> <span id="hn07" class="blink">Loading</span></p>
|
995 |
-
<p><?php _e('Other Treats', 'wp-slimstat') ?> <span id="hn08" class="blink">Loading</span></p>
|
996 |
-
<script type="text/javascript">
|
997 |
-
var data = {action: 'slimstat_load_report', report_id: 'slim_p1_16', security: jQuery('#meta-box-order-nonce').val(), 'run_scan': '00'};
|
998 |
-
jQuery('#slim_p1_16 .blink').each(function(){
|
999 |
-
data['run_scan'] = jQuery(this).attr('id');
|
1000 |
-
jQuery.ajax({
|
1001 |
-
url: ajaxurl,
|
1002 |
-
type: 'post',
|
1003 |
-
async: true,
|
1004 |
-
data: data,
|
1005 |
-
success: SlimStatAdmin.hacker_ninja_show_result('#'+data['run_scan'])
|
1006 |
-
});
|
1007 |
-
});
|
1008 |
-
</script><?php
|
1009 |
-
break;
|
1010 |
-
case 'hn01':
|
1011 |
-
case 'hn02':
|
1012 |
-
case 'hn03':
|
1013 |
-
case 'hn04':
|
1014 |
-
case 'hn05':
|
1015 |
-
case 'hn06':
|
1016 |
-
case 'hn07':
|
1017 |
-
case 'hn08':
|
1018 |
-
$options = array('timeout' => 30);
|
1019 |
-
$response = @wp_remote_get($hn_urls[$run_scan].'?website='.site_url(), $options);
|
1020 |
-
if (!is_wp_error($response) && isset($response['response']['code']) && ($response['response']['code'] == 200) && !empty($response['body'])){
|
1021 |
-
echo '<a target="_blank" href="http://www.hackerninja.com/wp-slimstat-hackerninja-special-offer/">'.((stripos($response['body'],'passed') !== false)?__('Passed','wp-slimstat'):__('At Risk','wp-slimstat')).'</a>';
|
1022 |
-
}
|
1023 |
-
else{
|
1024 |
-
echo __('Timed Out','wp-slimstat');
|
1025 |
-
}
|
1026 |
-
break;
|
1027 |
-
default:
|
1028 |
-
echo '<p class="nodata"><a class="button-hacker-ninja button-secondary" href="#">Enable Free Scan</a><br><br><a target="_blank" href="http://www.hackerninja.com/wp-slimstat-hackerninja/">Get instant email notifications of malware,<br> infections and hostile attacks</a></p>';
|
1029 |
-
break;
|
1030 |
-
}
|
1031 |
-
}
|
1032 |
-
}
|
1033 |
-
|
1034 |
public static function show_world_map($_id = 'p0'){
|
1035 |
wp_slimstat_db::$filters_normalized['misc']['limit_results'] = 9999;
|
1036 |
$countries = wp_slimstat_db::get_popular('t1.country');
|
@@ -1223,14 +1162,11 @@ class wp_slimstat_reports{
|
|
1223 |
case 'slim_p1_15':
|
1224 |
self::show_rankings($_report_id);
|
1225 |
break;
|
1226 |
-
case 'slim_p1_16':
|
1227 |
-
self::show_hacker_ninja($_report_id);
|
1228 |
-
break;
|
1229 |
case 'slim_p1_17':
|
1230 |
self::show_results('popular', $_report_id, 'SUBSTRING(t1.language, 1, 2)', array('total_for_percentage' => $current_pageviews, 'as_column' => 'language', 'filter_op' => 'contains'));
|
1231 |
break;
|
1232 |
case 'slim_p2_02':
|
1233 |
-
self::show_visitors_summary($_report_id,
|
1234 |
break;
|
1235 |
case 'slim_p2_03':
|
1236 |
self::show_results('popular', $_report_id, 'language', array('total_for_percentage' => $current_pageviews));
|
25 |
*/
|
26 |
public static function init(){
|
27 |
self::$screen_names = array(
|
28 |
+
1 => __('Activity Log','wp-slimstat'),
|
29 |
2 => __('Overview','wp-slimstat'),
|
30 |
3 => __('Visitors','wp-slimstat'),
|
31 |
4 => __('Content','wp-slimstat'),
|
47 |
'slim_p1_12' => __('Top Search Terms','wp-slimstat'),
|
48 |
'slim_p1_13' => __('Top Countries','wp-slimstat'),
|
49 |
'slim_p1_15' => __('Rankings','wp-slimstat'),
|
|
|
50 |
'slim_p1_17' => __('Top Language Families','wp-slimstat'),
|
51 |
'slim_p2_01' => __('Human Visits (chart)','wp-slimstat'),
|
52 |
'slim_p2_02' => __('At a Glance','wp-slimstat'),
|
99 |
'slim_p4_21' => __('Top Outbound Links and Downloads','wp-slimstat'),
|
100 |
'slim_p4_22' => __('Your Website','wp-slimstat'),
|
101 |
'slim_p6_01' => __('World Map','wp-slimstat'),
|
102 |
+
'slim_p7_02' => __('At A Glance','wp-slimstat')
|
103 |
);
|
104 |
|
105 |
|
106 |
if (!empty($_GET['page'])){
|
107 |
self::$current_tab = intval(str_replace('wp-slim-view-', '', $_GET['page']));
|
108 |
}
|
109 |
+
else if (!empty($_POST['current_tab'])){
|
110 |
+
self::$current_tab = intval($_POST['current_tab']);
|
111 |
+
}
|
112 |
self::$view_url = ((wp_slimstat::$options['use_separate_menu'] == 'yes')?'admin.php':'options.php').'?page=wp-slim-view-'.self::$current_tab;
|
113 |
|
114 |
// TO BE REVIEWED AND CLEANED UP
|
126 |
}
|
127 |
self::$all_reports = (empty(self::$all_reports) || empty(self::$all_reports[0]))?array():explode(',', self::$all_reports[0]);
|
128 |
|
129 |
+
$all_existing_reports = array(
|
130 |
+
1 => array('slim_p7_02'),
|
131 |
+
2 => array('slim_p1_01','slim_p1_02','slim_p1_03','slim_p1_04','slim_p1_11','slim_p1_12','slim_p1_05','slim_p1_08','slim_p1_10','slim_p1_13','slim_p1_15','slim_p1_17'),
|
132 |
+
3 => array('slim_p2_01','slim_p2_02','slim_p2_03','slim_p2_04','slim_p2_06','slim_p2_05','slim_p2_07','slim_p2_09','slim_p2_10','slim_p2_12','slim_p2_13','slim_p2_14','slim_p2_15','slim_p2_16','slim_p2_17','slim_p2_18','slim_p2_19','slim_p2_20','slim_p2_21'),
|
133 |
+
4 => array('slim_p4_01','slim_p4_22','slim_p1_06','slim_p4_07','slim_p4_02','slim_p4_03','slim_p4_05','slim_p4_04','slim_p4_06','slim_p4_08','slim_p4_12','slim_p4_13','slim_p4_14','slim_p4_15','slim_p4_16','slim_p4_17','slim_p4_18','slim_p4_11','slim_p4_10','slim_p4_19','slim_p4_20','slim_p4_21'),
|
134 |
+
5 => array('slim_p3_01','slim_p3_02','slim_p3_03','slim_p3_04','slim_p3_06','slim_p3_05','slim_p3_08','slim_p3_10','slim_p3_09','slim_p3_11'),
|
135 |
+
6 => array('slim_p6_01'),
|
136 |
+
7 => array()
|
137 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
|
139 |
// Some boxes are hidden by default
|
140 |
+
if (!empty($_GET['page']) && strpos($_GET['page'], 'wp-slim-view-') !== false){
|
141 |
self::$hidden_reports = get_user_option("metaboxhidden_{$page_location}_page_wp-slim-view-".self::$current_tab, $user->ID);
|
142 |
+
if (empty(self::$all_reports)){
|
143 |
+
self::$all_reports = $all_existing_reports[self::$current_tab];
|
144 |
+
}
|
145 |
+
else{
|
146 |
+
self::$all_reports = array_intersect(self::$all_reports, $all_existing_reports[self::$current_tab]);
|
147 |
+
}
|
148 |
+
}
|
149 |
+
else{ // the script is being called from the dashboard widgets plugin
|
150 |
self::$hidden_reports = get_user_option("metaboxhidden_{$page_location}", $user->ID);
|
151 |
+
}
|
152 |
|
153 |
// Default values
|
154 |
if (self::$hidden_reports === false){
|
293 |
|
294 |
if (!empty($filters_dropdown)){
|
295 |
foreach($filters_dropdown as $a_filter_label => $a_filter_details){
|
296 |
+
if (!array_key_exists($a_filter_label, wp_slimstat_db::$filter_names) || strpos($a_filter_label, 'no_filter') !== false){
|
297 |
continue;
|
298 |
}
|
299 |
|
970 |
<p><?php _e('Alexa Popularity', 'wp-slimstat') ?> <span><?php echo number_format($rankings['alexa_popularity'], 0, wp_slimstat_db::$formats['decimal'], wp_slimstat_db::$formats['thousand']) ?></span></p><?php
|
971 |
}
|
972 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
973 |
public static function show_world_map($_id = 'p0'){
|
974 |
wp_slimstat_db::$filters_normalized['misc']['limit_results'] = 9999;
|
975 |
$countries = wp_slimstat_db::get_popular('t1.country');
|
1162 |
case 'slim_p1_15':
|
1163 |
self::show_rankings($_report_id);
|
1164 |
break;
|
|
|
|
|
|
|
1165 |
case 'slim_p1_17':
|
1166 |
self::show_results('popular', $_report_id, 'SUBSTRING(t1.language, 1, 2)', array('total_for_percentage' => $current_pageviews, 'as_column' => 'language', 'filter_op' => 'contains'));
|
1167 |
break;
|
1168 |
case 'slim_p2_02':
|
1169 |
+
self::show_visitors_summary($_report_id, wp_slimstat_db::count_records_having('visit_id > 0', 'ip'), wp_slimstat_db::count_records('t1.visit_id > 0 AND tb.type <> 1', 'visit_id'));
|
1170 |
break;
|
1171 |
case 'slim_p2_03':
|
1172 |
self::show_results('popular', $_report_id, 'language', array('total_for_percentage' => $current_pageviews));
|
admin/wp-slimstat-admin.php
CHANGED
@@ -5,8 +5,7 @@ class wp_slimstat_admin{
|
|
5 |
public static $config_url = '';
|
6 |
public static $faulty_fields = array();
|
7 |
|
8 |
-
protected static $admin_notice = "
|
9 |
-
//
|
10 |
|
11 |
/**
|
12 |
* Init -- Sets things up.
|
@@ -39,9 +38,9 @@ class wp_slimstat_admin{
|
|
39 |
|
40 |
// Display a notice that hightlights this version's features
|
41 |
$admin_filemtime = @filemtime(WP_PLUGIN_DIR.'/wp-slimstat/admin/wp-slimstat-admin.php');
|
42 |
-
if (wp_slimstat::$options['show_admin_notice'] != wp_slimstat::$version && !empty($_GET['page']) && strpos($_GET['page'], 'wp-slim') !== false) {
|
43 |
-
|
44 |
-
}
|
45 |
|
46 |
// Remove spammers from the database
|
47 |
if (wp_slimstat::$options['ignore_spammers'] == 'yes'){
|
@@ -318,7 +317,7 @@ class wp_slimstat_admin{
|
|
318 |
* Removes 'spammers' from the database when the corresponding comments are marked as spam
|
319 |
*/
|
320 |
public static function remove_spam($_new_status = '', $_old_status = '', $_comment = ''){
|
321 |
-
if ($_new_status == 'spam'){
|
322 |
wp_slimstat::$wpdb->query(wp_slimstat::$wpdb->prepare("DELETE ts FROM {$GLOBALS['wpdb']->prefix}slim_stats ts WHERE user = %s OR INET_NTOA(ip) = %s", $_comment->comment_author, $_comment->comment_author_IP));
|
323 |
}
|
324 |
}
|
@@ -398,7 +397,7 @@ class wp_slimstat_admin{
|
|
398 |
$new_entry = array();
|
399 |
if (wp_slimstat::$options['use_separate_menu'] == 'yes'){
|
400 |
$new_entry[] = add_menu_page(__('SlimStat','wp-slimstat'), __('SlimStat','wp-slimstat'), $minimum_capability, 'wp-slim-view-1', array(__CLASS__, 'wp_slimstat_include_view'));
|
401 |
-
$new_entry[] = add_submenu_page('wp-slim-view-1', __('
|
402 |
$new_entry[] = add_submenu_page('wp-slim-view-1', __('Overview','wp-slimstat'), __('Overview','wp-slimstat'), $minimum_capability, 'wp-slim-view-2', array(__CLASS__, 'wp_slimstat_include_view'));
|
403 |
$new_entry[] = add_submenu_page('wp-slim-view-1', __('Visitors','wp-slimstat'), __('Visitors','wp-slimstat'), $minimum_capability, 'wp-slim-view-3', array(__CLASS__, 'wp_slimstat_include_view'));
|
404 |
$new_entry[] = add_submenu_page('wp-slim-view-1', __('Content','wp-slimstat'), __('Content','wp-slimstat'), $minimum_capability, 'wp-slim-view-4', array(__CLASS__, 'wp_slimstat_include_view'));
|
@@ -527,7 +526,7 @@ class wp_slimstat_admin{
|
|
527 |
if ('wp-slimstat' != $_column_name) return;
|
528 |
$parsed_permalink = parse_url( get_permalink($_post_id) );
|
529 |
$parsed_permalink = $parsed_permalink['path'].(!empty($parsed_permalink['query'])?'?'.$parsed_permalink['query']:'');
|
530 |
-
wp_slimstat_db::init('resource contains '.$parsed_permalink.'
|
531 |
$count = wp_slimstat_db::count_records();
|
532 |
echo '<a href="'.wp_slimstat_reports::fs_url("resource contains $parsed_permalink&&&day equals ".date_i18n('d').'&&&month equals '.date_i18n('m').'&&&year equals '.date_i18n('Y').'&&&interval equals -365').'">'.$count.'</a>';
|
533 |
}
|
@@ -597,7 +596,7 @@ class wp_slimstat_admin{
|
|
597 |
self::show_alert_message(__('There was an error updating the following options:','wp-slimstat').' '.implode(', ', self::$faulty_fields), 'updated below-h2');
|
598 |
}
|
599 |
else{
|
600 |
-
self::show_alert_message(__('Your
|
601 |
}
|
602 |
}
|
603 |
|
5 |
public static $config_url = '';
|
6 |
public static $faulty_fields = array();
|
7 |
|
8 |
+
protected static $admin_notice = ".";
|
|
|
9 |
|
10 |
/**
|
11 |
* Init -- Sets things up.
|
38 |
|
39 |
// Display a notice that hightlights this version's features
|
40 |
$admin_filemtime = @filemtime(WP_PLUGIN_DIR.'/wp-slimstat/admin/wp-slimstat-admin.php');
|
41 |
+
// if (wp_slimstat::$options['show_admin_notice'] != wp_slimstat::$version && !empty($_GET['page']) && strpos($_GET['page'], 'wp-slim') !== false) {
|
42 |
+
// add_action('admin_notices', array(__CLASS__, 'show_admin_notice'));
|
43 |
+
// }
|
44 |
|
45 |
// Remove spammers from the database
|
46 |
if (wp_slimstat::$options['ignore_spammers'] == 'yes'){
|
317 |
* Removes 'spammers' from the database when the corresponding comments are marked as spam
|
318 |
*/
|
319 |
public static function remove_spam($_new_status = '', $_old_status = '', $_comment = ''){
|
320 |
+
if ($_new_status == 'spam' && !empty($_comment->comment_author) && !empty($_comment->comment_author_IP)){
|
321 |
wp_slimstat::$wpdb->query(wp_slimstat::$wpdb->prepare("DELETE ts FROM {$GLOBALS['wpdb']->prefix}slim_stats ts WHERE user = %s OR INET_NTOA(ip) = %s", $_comment->comment_author, $_comment->comment_author_IP));
|
322 |
}
|
323 |
}
|
397 |
$new_entry = array();
|
398 |
if (wp_slimstat::$options['use_separate_menu'] == 'yes'){
|
399 |
$new_entry[] = add_menu_page(__('SlimStat','wp-slimstat'), __('SlimStat','wp-slimstat'), $minimum_capability, 'wp-slim-view-1', array(__CLASS__, 'wp_slimstat_include_view'));
|
400 |
+
$new_entry[] = add_submenu_page('wp-slim-view-1', __('Activity Log','wp-slimstat'), __('Activity Log','wp-slimstat'), $minimum_capability, 'wp-slim-view-1', array(__CLASS__, 'wp_slimstat_include_view'));
|
401 |
$new_entry[] = add_submenu_page('wp-slim-view-1', __('Overview','wp-slimstat'), __('Overview','wp-slimstat'), $minimum_capability, 'wp-slim-view-2', array(__CLASS__, 'wp_slimstat_include_view'));
|
402 |
$new_entry[] = add_submenu_page('wp-slim-view-1', __('Visitors','wp-slimstat'), __('Visitors','wp-slimstat'), $minimum_capability, 'wp-slim-view-3', array(__CLASS__, 'wp_slimstat_include_view'));
|
403 |
$new_entry[] = add_submenu_page('wp-slim-view-1', __('Content','wp-slimstat'), __('Content','wp-slimstat'), $minimum_capability, 'wp-slim-view-4', array(__CLASS__, 'wp_slimstat_include_view'));
|
526 |
if ('wp-slimstat' != $_column_name) return;
|
527 |
$parsed_permalink = parse_url( get_permalink($_post_id) );
|
528 |
$parsed_permalink = $parsed_permalink['path'].(!empty($parsed_permalink['query'])?'?'.$parsed_permalink['query']:'');
|
529 |
+
wp_slimstat_db::init('resource contains '.$parsed_permalink.'&&&hour equals 0&&&day equals '.date_i18n('d').'&&&month equals '.date_i18n('m').'&&&year equals '.date_i18n('Y').'&&&interval equals -365');
|
530 |
$count = wp_slimstat_db::count_records();
|
531 |
echo '<a href="'.wp_slimstat_reports::fs_url("resource contains $parsed_permalink&&&day equals ".date_i18n('d').'&&&month equals '.date_i18n('m').'&&&year equals '.date_i18n('Y').'&&&interval equals -365').'">'.$count.'</a>';
|
532 |
}
|
596 |
self::show_alert_message(__('There was an error updating the following options:','wp-slimstat').' '.implode(', ', self::$faulty_fields), 'updated below-h2');
|
597 |
}
|
598 |
else{
|
599 |
+
self::show_alert_message(__('Your changes have been saved.','wp-slimstat'), 'updated below-h2');
|
600 |
}
|
601 |
}
|
602 |
|
databases/maxmind.dat
CHANGED
Binary file
|
readme.txt
CHANGED
@@ -3,11 +3,11 @@ Contributors: coolmann
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BNJR5EZNY3W38
|
4 |
Tags: analytics, tracking, reports, analyze, wassup, geolocation, online users, spider, tracker, pageviews, stats, maxmind, statistics, statpress
|
5 |
Requires at least: 3.8
|
6 |
-
Tested up to: 3.8
|
7 |
-
Stable tag: 3.5.
|
8 |
|
9 |
== Description ==
|
10 |
-
|
11 |
|
12 |
= Key Features =
|
13 |
* Real-time reports
|
@@ -66,9 +66,12 @@ Go to SlimStat > Settings > General and set Tracking Mode to Javascript. Don't f
|
|
66 |
Also, if you're using W3 Total Cache, make sure to exclude wp-slimstat.js from the minifier: our code is already minified, and it looks like W3TC breaks something when it tries to minify it again.
|
67 |
|
68 |
= My screen goes blank when trying to access the reports / after installing WP SlimStat =
|
69 |
-
Go to SlimStat > Settings > Maintenance and click
|
70 |
[increase the amount of memory](http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP) allocated to PHP.
|
71 |
|
|
|
|
|
|
|
72 |
= When trying to access any of options screens, I get the following error: You do not have sufficient permissions to access this page. =
|
73 |
You were playing with the plugin's permission settings, weren't you? But don't worry, there's a secret passage that will allow you to unlock your access. Create a new WordPress admin user named `slimstatadmin`. Then log into your WordPress admin area with the new user and... voila: you can now access WP SlimStat's settings again. Update your users' permissions and then get rid of this newly created user.
|
74 |
|
@@ -220,12 +223,12 @@ You will need to edit your template and add something like this where you want y
|
|
220 |
require_once(WP_PLUGIN_DIR.'/wp-slimstat/admin/view/wp-slimstat-db.php');
|
221 |
|
222 |
// Initialize the API. You can pass a filter in the options, i.e. show only hits by people who where using Firefox (any version) *and* visiting 'posts':
|
223 |
-
wp_slimstat_db::init('browser contains Firefox
|
224 |
|
225 |
// Use the appropriate method to display your stats
|
226 |
echo wp_slimstat_db::count_records('1=1', '*', false);`
|
227 |
|
228 |
-
You can list more than one filter by using
|
229 |
|
230 |
*Available methods*
|
231 |
|
@@ -250,29 +253,39 @@ You can list more than one filter by using the pipe char | to separate them (whi
|
|
250 |
|
251 |
Recent Posts:
|
252 |
|
253 |
-
`wp_slimstat_db::init('content_type equals post
|
254 |
$results = wp_slimstat_db::get_recent('t1.resource');
|
255 |
foreach ($results...`
|
256 |
|
257 |
Top Languages last month:
|
258 |
|
259 |
-
`wp_slimstat_db::init('month equals
|
260 |
$results = wp_slimstat_db::get_popular('t1.language');
|
261 |
foreach ($results...`
|
262 |
|
263 |
== Screenshots ==
|
264 |
|
265 |
1. **Overview** - Your website traffic at a glance
|
266 |
-
2. **
|
267 |
3. **Settings** - Plenty of options to customize the plugin's behavior
|
268 |
4. **Interactive World Map** - See where your visitors are coming from
|
269 |
5. **Responsive layout** - Keep an eye on your reports on the go
|
270 |
|
271 |
== Changelog ==
|
272 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
|
274 |
= 3.5.4 =
|
275 |
* [Note] Update your free and premium add-ons to the latest version available!
|
|
|
276 |
* [New] When Convert IP Addresses is enabled, hostnames are shown along with IP addresses, not instead of (thank you, Simas)
|
277 |
* [New] Added a new switch to turn 'Debug Mode' on (under Settings > Advanced)
|
278 |
* [New] Consolidated report functions to use the new DB API filter format
|
@@ -344,49 +357,6 @@ foreach ($results...`
|
|
344 |
* [Update] MaxMind / Geolocation database updated to December 2013
|
345 |
* [Fix] Bug on masking IP Addresses on 32-bit systems (thank you, Per)
|
346 |
|
347 |
-
= 3.4.3 =
|
348 |
-
* [Fix] Bug in parsing the data returned by Alexa (new Rankings report) was causing some reports to disappear (thank you, [pepe](http://wordpress.org/support/topic/php-warnings-in-rankings-box))
|
349 |
-
* [Fix] A few PHP notices (thank you, [supriyos](http://wordpress.org/support/topic/errors-after-upgrading-to-342))
|
350 |
-
* [Fix] Bug in masking local IP addresses (thank you, [carbeck](http://wordpress.org/support/topic/1272552550-1))
|
351 |
-
|
352 |
-
= 3.4.2 =
|
353 |
-
* [New] Three new reports give you detailed information about your rankings (Google, Facebook, Alexa), your content and your site's security.
|
354 |
-
* [Update] Complete Russian Localization (thank you, Vitaly!)
|
355 |
-
* [Update] Top Browsers now groups browsers by name, if the user agent string is not enabled/displayed (thank you, Vitaly)
|
356 |
-
* [Update] Much improved language detection and localization (thank you, Vitaly)
|
357 |
-
* [Update] By default only admins can now see the stats (minimum capability to view: activate_plugins).
|
358 |
-
* [Update] Removed unused languages from the dictionary (who is using operating systems in Herero, Igbo, Hiri Motu, Church Slavic anyway?)
|
359 |
-
* [Update] Optimized code to manage the plugin's options (removed unnecessary db interactions)
|
360 |
-
* [Update] World Map ([AmMap](http://www.ammap.com/download/)) updated to version 3.7
|
361 |
-
* [Update] MaxMind / Geolocation database updated to November 2013
|
362 |
-
* [Update] Consolidated reports and improved performance on Overview tab
|
363 |
-
* [Fix] Bug in converting some IP addresses to long integers (thank you, [tkleinsteuber](http://wordpress.org/support/topic/wrong-geolocation-for-rfc-1918-private-ip-ranges))
|
364 |
-
* [Fix] Some PHP warnings about undefined variables
|
365 |
-
|
366 |
-
= 3.4.1 =
|
367 |
-
* [New] Report to visualize top Outbound Links and Downloads (thank you, [bobinoz](http://wordpress.org/support/topic/tracking-outbound-links-1))
|
368 |
-
* [New] Purge data by user agent (thank you, [GermanKiwi](http://wordpress.org/support/topic/purge-data-based-on-user-agent))
|
369 |
-
* [New] Import/Export all your settings in a text file. Go to Settings > Maintenance and give it a try! (thank you, [Mike](http://wordpress.org/support/topic/feature-request-save-out-settings))
|
370 |
-
* [Update] Cosmetic updates to the interface
|
371 |
-
* [Update] Right Now Extended is now set to 'No' by default
|
372 |
-
* [Fix] Filters were not being reset if API was invoked more than once on the same page (thank you, [PV-Patrick](http://wordpress.org/support/topic/api-calls-in-the_loop))
|
373 |
-
* [Fix] Compatibility issues with User Overview (thank you, Thorsten)
|
374 |
-
* [Fix] Bug affecting the data recorded when URLs were using non-ASCII characters (thank you, [dimitrios1988](http://wordpress.org/support/topic/stats-now-showing-in-non-ascii-characters))
|
375 |
-
* [Fix] Compatibility issues with Export to Excel
|
376 |
-
* [Fix] Bug related to the new HTTP POST-based Filtering system
|
377 |
-
* [Fix] Issue with French localization encoding (thank you [whoaloic](http://wordpress.org/support/topic/foreign-language-encoding-issue))
|
378 |
-
* [Fix] Elaborated on how to use multiple filters with the API (thank you, [Statistiker](http://wordpress.org/support/topic/filter-most-popular-posts))
|
379 |
-
|
380 |
-
= 3.4 =
|
381 |
-
* [Note] We can't believe we're already crossing the 600,000 downloads mark! To celebrate this accomplishment, we're working on a brand new website! Stay tuned.
|
382 |
-
* [New] Local IP Addresses are now marked as such (thank you, [Thorsten](http://wordpress.org/support/topic/wrong-geolocation-for-rfc-1918-private-ip-ranges))
|
383 |
-
* [Update] SlimStat's filters have been reimplemented to use HTTP POST requests, in order to avoid issues with very long URIs (thank you, John)
|
384 |
-
* [Update] You can now restrict access to the configuration screens by specifying the minimum capability required (default: activate_plugins)
|
385 |
-
* [Update] Localization files have consolidated and are now easier to manage. Send us your localization!
|
386 |
-
* [Fix] Clicking on report titles doesn't collapse the box anymore (thank you, psn)
|
387 |
-
* [Fix] Minor fixes to the Javascript used on admin pages
|
388 |
-
* [Fix] Restored compatibility with the plugin Dashboard Widgets
|
389 |
-
|
390 |
== Distinguished Users ==
|
391 |
|
392 |
* [Vitaly](http://www.visbiz.org/) - Volunteered quite a lot of time for QA and testing, and provided the complete Russian localization
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BNJR5EZNY3W38
|
4 |
Tags: analytics, tracking, reports, analyze, wassup, geolocation, online users, spider, tracker, pageviews, stats, maxmind, statistics, statpress
|
5 |
Requires at least: 3.8
|
6 |
+
Tested up to: 3.8.1
|
7 |
+
Stable tag: 3.5.5
|
8 |
|
9 |
== Description ==
|
10 |
+
The most accurate real-time statistics plugin for WordPress. Visit our [official site](http://slimstat.getused.to.it/) for more information, or find us on [GitHub](https://github.com/getusedtoit/wp-slimstat) (psst, we have Flattr enabled, there: star our project to donate).
|
11 |
|
12 |
= Key Features =
|
13 |
* Real-time reports
|
66 |
Also, if you're using W3 Total Cache, make sure to exclude wp-slimstat.js from the minifier: our code is already minified, and it looks like W3TC breaks something when it tries to minify it again.
|
67 |
|
68 |
= My screen goes blank when trying to access the reports / after installing WP SlimStat =
|
69 |
+
Go to SlimStat > Settings > Maintenance and click the NO PANIC Button. If that doesn't help,
|
70 |
[increase the amount of memory](http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP) allocated to PHP.
|
71 |
|
72 |
+
= Reports look all messy and not styled =
|
73 |
+
Go to SlimStat > Settings > Maintenance and click the NO PANIC Button. If that doesn't help, make sure you don't have AdBlock installed and active in your browser. For some reason, that plugin doesn't like WP SlimStat.
|
74 |
+
|
75 |
= When trying to access any of options screens, I get the following error: You do not have sufficient permissions to access this page. =
|
76 |
You were playing with the plugin's permission settings, weren't you? But don't worry, there's a secret passage that will allow you to unlock your access. Create a new WordPress admin user named `slimstatadmin`. Then log into your WordPress admin area with the new user and... voila: you can now access WP SlimStat's settings again. Update your users' permissions and then get rid of this newly created user.
|
77 |
|
223 |
require_once(WP_PLUGIN_DIR.'/wp-slimstat/admin/view/wp-slimstat-db.php');
|
224 |
|
225 |
// Initialize the API. You can pass a filter in the options, i.e. show only hits by people who where using Firefox (any version) *and* visiting 'posts':
|
226 |
+
wp_slimstat_db::init('browser contains Firefox&&&content_type equals post');
|
227 |
|
228 |
// Use the appropriate method to display your stats
|
229 |
echo wp_slimstat_db::count_records('1=1', '*', false);`
|
230 |
|
231 |
+
You can list more than one filter by using &&& to separate them (which is evaluated as AND among the filters). Please read [these FAQs](http://wordpress.org/plugins/wp-slimstat-shortcodes/faq/) for more information on how to combine filters.
|
232 |
|
233 |
*Available methods*
|
234 |
|
253 |
|
254 |
Recent Posts:
|
255 |
|
256 |
+
`wp_slimstat_db::init('content_type equals post');
|
257 |
$results = wp_slimstat_db::get_recent('t1.resource');
|
258 |
foreach ($results...`
|
259 |
|
260 |
Top Languages last month:
|
261 |
|
262 |
+
`wp_slimstat_db::init('month equals last month');
|
263 |
$results = wp_slimstat_db::get_popular('t1.language');
|
264 |
foreach ($results...`
|
265 |
|
266 |
== Screenshots ==
|
267 |
|
268 |
1. **Overview** - Your website traffic at a glance
|
269 |
+
2. **Activity Log** - A real-time view of your visitors' whereabouts
|
270 |
3. **Settings** - Plenty of options to customize the plugin's behavior
|
271 |
4. **Interactive World Map** - See where your visitors are coming from
|
272 |
5. **Responsive layout** - Keep an eye on your reports on the go
|
273 |
|
274 |
== Changelog ==
|
275 |
|
276 |
+
= 3.5.5 =
|
277 |
+
* [Note] Our partnership with HackerNinja.com ended a few days ago, we wish them all the best for their business!
|
278 |
+
* [New] The new DB API supports natural language dates: day equals today, year equals this year, etc. This brings the [Shortcodes](http://wordpress.org/plugins/wp-slimstat-shortcodes/) add-on to a whole new level of flexibility!
|
279 |
+
* [Update] Right Now has been renamed Activity Log
|
280 |
+
* [Fix] We can't believe nobody had noticed a bug in calculating the bounce rate value. Numbers were way off! (thank you, Rob)
|
281 |
+
* [Fix] User Overview add-on had some problems with sorting by certain columns
|
282 |
+
* [Fix] Filters were not being reset when multiple shortcodes were being used on the same page (thank you, [joachimcarrein](http://wordpress.org/support/topic/filters-remembered))
|
283 |
+
* [Fix] Pageviews in the Edit Posts panel were not being properly calculated (thank you, [Aljoscha](http://wordpress.org/support/topic/updated-to-354-no-statistics))
|
284 |
+
* [Fix] The Add-Ons page was not working as expected.
|
285 |
|
286 |
= 3.5.4 =
|
287 |
* [Note] Update your free and premium add-ons to the latest version available!
|
288 |
+
* [New] If you're using the APIs, our filter separator changed from | to &&& (three ampersand chars). Please update your code accordingly.
|
289 |
* [New] When Convert IP Addresses is enabled, hostnames are shown along with IP addresses, not instead of (thank you, Simas)
|
290 |
* [New] Added a new switch to turn 'Debug Mode' on (under Settings > Advanced)
|
291 |
* [New] Consolidated report functions to use the new DB API filter format
|
357 |
* [Update] MaxMind / Geolocation database updated to December 2013
|
358 |
* [Fix] Bug on masking IP Addresses on 32-bit systems (thank you, Per)
|
359 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
== Distinguished Users ==
|
361 |
|
362 |
* [Vitaly](http://www.visbiz.org/) - Volunteered quite a lot of time for QA and testing, and provided the complete Russian localization
|
wp-slimstat.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/*
|
3 |
Plugin Name: WP SlimStat
|
4 |
Plugin URI: http://wordpress.org/plugins/wp-slimstat/
|
5 |
-
Description:
|
6 |
-
Version: 3.5.
|
7 |
Author: Camu
|
8 |
Author URI: http://slimstat.getused.to.it/
|
9 |
*/
|
@@ -11,7 +11,7 @@ Author URI: http://slimstat.getused.to.it/
|
|
11 |
if (!empty(wp_slimstat::$options)) return true;
|
12 |
|
13 |
class wp_slimstat{
|
14 |
-
public static $version = '3.5.
|
15 |
public static $options = array();
|
16 |
|
17 |
public static $wpdb = '';
|
@@ -1175,7 +1175,7 @@ class wp_slimstat{
|
|
1175 |
$slimstat_config_url = get_site_url($GLOBALS['blog_id'], "/wp-admin/$slimstat_config_url?page=wp-slim-config");
|
1176 |
|
1177 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-header', 'title' => 'SlimStat', 'href' => "{$slimstat_view_url}1"));
|
1178 |
-
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel1', 'href' => "{$slimstat_view_url}1", 'parent' => 'slimstat-header', 'title' => __('
|
1179 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel2', 'href' => "{$slimstat_view_url}2", 'parent' => 'slimstat-header', 'title' => __('Overview', 'wp-slimstat')));
|
1180 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel3', 'href' => "{$slimstat_view_url}3", 'parent' => 'slimstat-header', 'title' => __('Visitors', 'wp-slimstat')));
|
1181 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel4', 'href' => "{$slimstat_view_url}4", 'parent' => 'slimstat-header', 'title' => __('Content', 'wp-slimstat')));
|
2 |
/*
|
3 |
Plugin Name: WP SlimStat
|
4 |
Plugin URI: http://wordpress.org/plugins/wp-slimstat/
|
5 |
+
Description: The most accurate real-time statistics plugin for WordPress
|
6 |
+
Version: 3.5.5
|
7 |
Author: Camu
|
8 |
Author URI: http://slimstat.getused.to.it/
|
9 |
*/
|
11 |
if (!empty(wp_slimstat::$options)) return true;
|
12 |
|
13 |
class wp_slimstat{
|
14 |
+
public static $version = '3.5.5';
|
15 |
public static $options = array();
|
16 |
|
17 |
public static $wpdb = '';
|
1175 |
$slimstat_config_url = get_site_url($GLOBALS['blog_id'], "/wp-admin/$slimstat_config_url?page=wp-slim-config");
|
1176 |
|
1177 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-header', 'title' => 'SlimStat', 'href' => "{$slimstat_view_url}1"));
|
1178 |
+
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel1', 'href' => "{$slimstat_view_url}1", 'parent' => 'slimstat-header', 'title' => __('Activity Log', 'wp-slimstat')));
|
1179 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel2', 'href' => "{$slimstat_view_url}2", 'parent' => 'slimstat-header', 'title' => __('Overview', 'wp-slimstat')));
|
1180 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel3', 'href' => "{$slimstat_view_url}3", 'parent' => 'slimstat-header', 'title' => __('Visitors', 'wp-slimstat')));
|
1181 |
$GLOBALS['wp_admin_bar']->add_menu(array('id' => 'slimstat-panel4', 'href' => "{$slimstat_view_url}4", 'parent' => 'slimstat-header', 'title' => __('Content', 'wp-slimstat')));
|