Version Description
FREE = * [new] Better stats display * [fix] Improved PHP7 compatibility * [fix] Schedule properly removed when removing advert * [change] Dashboard tweaks and improvements
Download this release
Release Info
Developer | adegans |
Plugin | AdRotate Banner Manager |
Version | 4.6 |
Comparing to | |
See all releases |
Code changes from version 4.5 to 4.6
- adrotate-functions.php +44 -1
- adrotate-manage-publisher.php +2 -0
- adrotate-output.php +9 -14
- adrotate-setup.php +0 -5
- adrotate-statistics.php +239 -47
- adrotate.php +133 -3
- dashboard/publisher/adverts-edit.php +5 -5
- dashboard/publisher/adverts-main.php +2 -2
- dashboard/publisher/adverts-report.php +0 -64
- dashboard/publisher/groups-edit.php +3 -3
- dashboard/publisher/groups-main.php +2 -2
- dashboard/publisher/groups-report.php +0 -65
- dashboard/publisher/media.php +74 -0
- dashboard/publisher/schedules-main.php +92 -0
- dashboard/publisher/statistics-advert.php +142 -0
- dashboard/publisher/statistics-group.php +114 -0
- dashboard/publisher/statistics-main.php +75 -0
- images/cross.png +0 -0
- images/tick.png +0 -0
- readme.txt +10 -6
adrotate-functions.php
CHANGED
@@ -673,7 +673,7 @@ function adrotate_dashboard_styles() {
|
|
673 |
|
674 |
/*-------------------------------------------------------------
|
675 |
Name: adrotate_folder_contents
|
676 |
-
Purpose:
|
677 |
Since: 0.4
|
678 |
-------------------------------------------------------------*/
|
679 |
function adrotate_folder_contents($current, $kind = 'all') {
|
@@ -722,6 +722,49 @@ function adrotate_folder_contents($current, $kind = 'all') {
|
|
722 |
return $output;
|
723 |
}
|
724 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
725 |
/*-------------------------------------------------------------
|
726 |
Name: adrotate_return
|
727 |
Purpose: Internal redirects
|
673 |
|
674 |
/*-------------------------------------------------------------
|
675 |
Name: adrotate_folder_contents
|
676 |
+
Purpose: Populate dropdown menu for creating adverts with relevant assets
|
677 |
Since: 0.4
|
678 |
-------------------------------------------------------------*/
|
679 |
function adrotate_folder_contents($current, $kind = 'all') {
|
722 |
return $output;
|
723 |
}
|
724 |
|
725 |
+
/*-------------------------------------------------------------
|
726 |
+
Name: adrotate_subfolder_contents
|
727 |
+
Purpose: List sub-folder contents for media manager
|
728 |
+
Since: 4.9
|
729 |
+
-------------------------------------------------------------*/
|
730 |
+
function adrotate_subfolder_contents($asset_folder, $level = 1) {
|
731 |
+
$index = $assets = array();
|
732 |
+
|
733 |
+
// Read Banner folder
|
734 |
+
if($handle = opendir($asset_folder)) {
|
735 |
+
while(false !== ($file = readdir($handle))) {
|
736 |
+
if($file != "." AND $file != ".." AND $file != "index.php" AND $file != ".DS_Store") {
|
737 |
+
$assets[] = $file;
|
738 |
+
}
|
739 |
+
}
|
740 |
+
closedir($handle);
|
741 |
+
|
742 |
+
if(count($assets) > 0) {
|
743 |
+
$new_level = $level + 1;
|
744 |
+
$extensions = array('jpg', 'jpeg', 'gif', 'png', 'swf', 'flv', 'html', 'htm', 'js');
|
745 |
+
|
746 |
+
foreach($assets as $key => $asset) {
|
747 |
+
$fileinfo = pathinfo($asset);
|
748 |
+
unset($fileinfo['dirname']);
|
749 |
+
if(is_dir($asset_folder.'/'.$asset)) { // Read subfolder
|
750 |
+
if($level <= 2) { // Not to deep
|
751 |
+
$fileinfo['contents'] = adrotate_subfolder_contents($asset_folder.'/'.$asset, $new_level);
|
752 |
+
$index[] = $fileinfo;
|
753 |
+
}
|
754 |
+
} else { // It's a file
|
755 |
+
if(in_array($fileinfo['extension'], $extensions)) {
|
756 |
+
$index[] = $fileinfo;
|
757 |
+
}
|
758 |
+
}
|
759 |
+
unset($fileinfo);
|
760 |
+
}
|
761 |
+
unset($level, $new_level);
|
762 |
+
}
|
763 |
+
}
|
764 |
+
|
765 |
+
return $index;
|
766 |
+
}
|
767 |
+
|
768 |
/*-------------------------------------------------------------
|
769 |
Name: adrotate_return
|
770 |
Purpose: Internal redirects
|
adrotate-manage-publisher.php
CHANGED
@@ -561,6 +561,8 @@ function adrotate_delete($id, $what) {
|
|
561 |
|
562 |
if($id > 0) {
|
563 |
if($what == 'banner') {
|
|
|
|
|
564 |
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate` WHERE `id` = %d;", $id));
|
565 |
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d;", $id));
|
566 |
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d;", $id));
|
561 |
|
562 |
if($id > 0) {
|
563 |
if($what == 'banner') {
|
564 |
+
$schedule_id = $wpdb->get_row($wpdb->prepare("SELECT `schedule` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d AND `group` = '0' AND `user` = '0' AND `schedule` != '0';", $id));
|
565 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_schedules` WHERE `id` = %d;", $schedule_id));
|
566 |
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate` WHERE `id` = %d;", $id));
|
567 |
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d;", $id));
|
568 |
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d;", $id));
|
adrotate-output.php
CHANGED
@@ -676,29 +676,24 @@ function adrotate_notifications_dashboard() {
|
|
676 |
|
677 |
if(isset($_GET['page'])) { $page = $_GET['page']; } else { $page = ''; }
|
678 |
if(strpos($page, 'adrotate') !== false) {
|
679 |
-
|
680 |
-
if(isset($_GET['hide']) AND $_GET['hide'] == 1) update_option('adrotate_hide_banner', 1);
|
681 |
if(isset($_GET['hide']) AND $_GET['hide'] == 2) update_option('adrotate_hide_review', 1);
|
682 |
if(isset($_GET['hide']) AND $_GET['hide'] == 3) update_option('adrotate_hide_competition', 1);
|
683 |
|
684 |
$pro_banner = get_option('adrotate_hide_banner');
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
echo ' </div>';
|
693 |
-
echo '</div>';
|
694 |
-
}
|
695 |
|
696 |
$review_banner = get_option('adrotate_hide_review');
|
697 |
-
if($review_banner != 1 AND $review_banner < (adrotate_now() -
|
698 |
echo '<div class="updated" style="padding: 0; margin: 0;">';
|
699 |
echo ' <div class="ajdg_notification">';
|
700 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform">Rate AdRotate</a></div>';
|
701 |
-
echo ' <div class="text">
|
702 |
echo ' <a class="close_notification" href="admin.php?page=adrotate&hide=2"><img title="Close" src="'.plugins_url('/images/icon-close.png', __FILE__).'" alt=""/></a>';
|
703 |
echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
704 |
echo ' </div>';
|
676 |
|
677 |
if(isset($_GET['page'])) { $page = $_GET['page']; } else { $page = ''; }
|
678 |
if(strpos($page, 'adrotate') !== false) {
|
|
|
|
|
679 |
if(isset($_GET['hide']) AND $_GET['hide'] == 2) update_option('adrotate_hide_review', 1);
|
680 |
if(isset($_GET['hide']) AND $_GET['hide'] == 3) update_option('adrotate_hide_competition', 1);
|
681 |
|
682 |
$pro_banner = get_option('adrotate_hide_banner');
|
683 |
+
echo '<div class="updated" style="padding: 0; margin: 0;">';
|
684 |
+
echo ' <div class="ajdg_notification">';
|
685 |
+
echo ' <div class="button_div"><a class="button" target="_blank" href="https://ajdg.solutions/products/adrotate-for-wordpress/?add-to-cart=1126&utm_campaign=adrotate-page&utm_medium=upgrade-banner-button&utm_source=adrotate-free">'.__('Buy now', 'adrotate').'</a></div>';
|
686 |
+
echo ' <div class="text">'.__("If you like <strong>AdRotate</strong>, please consider upgrading to the <strong>PRO</strong> version and get more features.", 'adrotate').'<br /><span>'.__('Use discount code <b>getadrotatepro</b> for 10% off on any AdRotate license!', 'adrotate' ).' '.__('Thank you for your support!', 'adrotate' ).'</span></div>';
|
687 |
+
echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
688 |
+
echo ' </div>';
|
689 |
+
echo '</div>';
|
|
|
|
|
|
|
690 |
|
691 |
$review_banner = get_option('adrotate_hide_review');
|
692 |
+
if($review_banner != 1 AND $review_banner < (adrotate_now() - 1209600)) {
|
693 |
echo '<div class="updated" style="padding: 0; margin: 0;">';
|
694 |
echo ' <div class="ajdg_notification">';
|
695 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform">Rate AdRotate</a></div>';
|
696 |
+
echo ' <div class="text">You have been using <strong>AdRotate</strong> for a few days. Rate <strong>AdRotate</strong> with a 5 star review!<br /><span>If you have questions, suggestions or something else that doesn\'t belong in a review, please <a href="https://ajdg.solutions/forums/forum/adrotate-for-wordpress/?utm_campaign=adrotate-forum&utm_medium=review-banner&utm_source=adrotate-free" target="_blank">get in touch</a>!</span></div>';
|
697 |
echo ' <a class="close_notification" href="admin.php?page=adrotate&hide=2"><img title="Close" src="'.plugins_url('/images/icon-close.png', __FILE__).'" alt=""/></a>';
|
698 |
echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
699 |
echo ' </div>';
|
adrotate-setup.php
CHANGED
@@ -1200,11 +1200,6 @@ function adrotate_cleanup_database() {
|
|
1200 |
|
1201 |
$now = adrotate_now();
|
1202 |
|
1203 |
-
// Delete expired schedules
|
1204 |
-
if(isset($_POST['adrotate_db_cleanup_schedules'])) {
|
1205 |
-
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_schedule` WHERE `stoptime` < $now;");
|
1206 |
-
}
|
1207 |
-
|
1208 |
// Delete old stats
|
1209 |
if(isset($_POST['adrotate_db_cleanup_statistics'])) {
|
1210 |
$lastyear = $now - 30758400;
|
1200 |
|
1201 |
$now = adrotate_now();
|
1202 |
|
|
|
|
|
|
|
|
|
|
|
1203 |
// Delete old stats
|
1204 |
if(isset($_POST['adrotate_db_cleanup_statistics'])) {
|
1205 |
$lastyear = $now - 30758400;
|
adrotate-statistics.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/* ------------------------------------------------------------------------------------
|
3 |
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
-
* ADROTATE is a trademark of Arnan de Gans.
|
6 |
|
7 |
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
* By using this code you agree to indemnify Arnan de Gans from any
|
@@ -11,13 +11,20 @@
|
|
11 |
|
12 |
/*-------------------------------------------------------------
|
13 |
Name: adrotate_draw_graph
|
|
|
14 |
Purpose: Draw graph using ElyCharts
|
|
|
|
|
15 |
Since: 3.8
|
16 |
-------------------------------------------------------------*/
|
17 |
function adrotate_draw_graph($id = 0, $labels = 0, $clicks = 0, $impressions = 0) {
|
18 |
|
19 |
if($id == 0 OR !is_numeric($id) OR strlen($labels) < 1 OR strlen($clicks) < 1 OR strlen($impressions) < 1) {
|
20 |
echo 'Syntax error, graph can not de drawn!';
|
|
|
|
|
|
|
|
|
21 |
} else {
|
22 |
echo '
|
23 |
<script type="text/javascript">
|
@@ -42,16 +49,17 @@ function adrotate_draw_graph($id = 0, $labels = 0, $clicks = 0, $impressions = 0
|
|
42 |
serie2: {
|
43 |
axis: "r", color: "#F80", plotProps: { "stroke-width": 2 }, dotProps: { stroke: "white", size: 3, "stroke-width": 1 }
|
44 |
}
|
|
|
45 |
},
|
46 |
defaultAxis: {
|
47 |
labels: true, labelsProps: { fill: "#777", "font-size": "10px", }, labelsAnchor: "start", labelsMargin: 5, labelsDistance: 8, labelsRotate: 65
|
48 |
},
|
49 |
axis: {
|
50 |
l: { // left axis
|
51 |
-
labels: true,
|
52 |
},
|
53 |
r: { // right axis
|
54 |
-
labels: true,
|
55 |
}
|
56 |
},
|
57 |
features: {
|
@@ -84,18 +92,23 @@ function adrotate_draw_graph($id = 0, $labels = 0, $clicks = 0, $impressions = 0
|
|
84 |
Purpose: Generate latest number of clicks and impressions
|
85 |
Since: 3.8
|
86 |
-------------------------------------------------------------*/
|
87 |
-
function adrotate_stats($ad, $when = 0, $until = 0) {
|
88 |
global $wpdb;
|
89 |
-
|
90 |
-
if($when > 0 AND is_numeric($when) AND $until > 0 AND is_numeric($until)) {
|
91 |
-
$whenquery =
|
92 |
-
} else if($when > 0 AND is_numeric($when) AND $until == 0) {
|
93 |
$until = $when + 86400;
|
94 |
$whenquery = " AND `thetime` >= '$when' AND `thetime` <= '$until'";
|
95 |
-
} else {
|
96 |
$whenquery = "";
|
97 |
}
|
98 |
|
|
|
|
|
|
|
|
|
|
|
99 |
$ad_query = '';
|
100 |
if(is_array($ad)) {
|
101 |
$ad_query .= '(';
|
@@ -107,18 +120,27 @@ function adrotate_stats($ad, $when = 0, $until = 0) {
|
|
107 |
} else {
|
108 |
$ad_query = '`ad` = '.$ad;
|
109 |
}
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
if(empty($stats['clicks'])) $stats['clicks'] = '0';
|
113 |
if(empty($stats['impressions'])) $stats['impressions'] = '0';
|
114 |
|
115 |
return $stats;
|
116 |
-
|
117 |
}
|
118 |
|
119 |
/*-------------------------------------------------------------
|
120 |
Name: adrotate_stats_nav
|
|
|
121 |
Purpose: Create browsable links for graph
|
|
|
|
|
122 |
Since: 3.8
|
123 |
-------------------------------------------------------------*/
|
124 |
function adrotate_stats_nav($type, $id, $month, $year) {
|
@@ -135,41 +157,53 @@ function adrotate_stats_nav($type, $id, $month, $year) {
|
|
135 |
$nextmonth = 1;
|
136 |
$nextyear = $year + 1;
|
137 |
}
|
138 |
-
$months = array(__('January', 'adrotate'), __('February', 'adrotate'), __('March', 'adrotate'), __('April', 'adrotate'), __('May', 'adrotate'), __('June', 'adrotate'), __('July', 'adrotate'), __('August', 'adrotate'), __('September', 'adrotate'), __('October', 'adrotate'), __('November', 'adrotate'), __('December', 'adrotate'));
|
139 |
|
140 |
-
|
141 |
-
if($type == '
|
|
|
|
|
|
|
|
|
142 |
|
143 |
-
$nav = '<a href="admin.php?page='.$page.'&month='.$lastmonth.'&year='.$lastyear.'"><< '.__('Previous', 'adrotate').'</a> - ';
|
144 |
$nav .= '<strong>'.$months[$month-1].' '.$year.'</strong> - ';
|
145 |
-
$nav .= '(<a href="admin.php?page='.$page.'">'.__('This month', 'adrotate').'</a>) - ';
|
146 |
-
$nav .= '<a href="admin.php?page='.$page.'&month='.$nextmonth.'&year='.$nextyear.'">'. __('Next', 'adrotate').' >></a>';
|
147 |
-
|
148 |
return $nav;
|
149 |
}
|
150 |
|
151 |
/*-------------------------------------------------------------
|
152 |
Name: adrotate_stats_graph
|
|
|
153 |
Purpose: Generate graph
|
|
|
|
|
154 |
Since: 3.8
|
155 |
-------------------------------------------------------------*/
|
156 |
-
function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
157 |
global $wpdb;
|
158 |
|
|
|
|
|
|
|
|
|
|
|
159 |
if($type == 'ads' OR $type == 'advertiser') {
|
160 |
-
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}
|
161 |
}
|
162 |
|
163 |
if($type == 'groups') {
|
164 |
-
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}
|
165 |
}
|
166 |
|
167 |
-
if($type == '
|
168 |
-
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}
|
169 |
}
|
170 |
|
171 |
-
if($type == '
|
172 |
-
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}
|
173 |
}
|
174 |
|
175 |
if($stats) {
|
@@ -196,6 +230,7 @@ function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
|
196 |
if(empty($result['clicks'])) $result['clicks'] = '0';
|
197 |
if(empty($result['impressions'])) $result['impressions'] = '0';
|
198 |
|
|
|
199 |
if($result['thetime'] >= $day_start AND $result['thetime'] <= $day_end) {
|
200 |
if(empty($graph[$i]['clicks'])) $graph[$i]['clicks'] = '0';
|
201 |
if(empty($graph[$i]['impressions'])) $graph[$i]['impressions'] = '0';
|
@@ -225,11 +260,11 @@ function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
|
225 |
$impressions = trim($impressions, ",");
|
226 |
|
227 |
$output = '';
|
228 |
-
$output .= '<div id="chart-
|
229 |
$output .= adrotate_draw_graph($chartid, $dates, $clicks, $impressions);
|
230 |
unset($stats, $graph, $dates, $clicks, $impressions);
|
231 |
} else {
|
232 |
-
$output = __('No data to show!', 'adrotate');
|
233 |
}
|
234 |
|
235 |
return $output;
|
@@ -237,7 +272,10 @@ function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
|
237 |
|
238 |
/*-------------------------------------------------------------
|
239 |
Name: adrotate_ctr
|
|
|
240 |
Purpose: Calculate Click-Through-Rate
|
|
|
|
|
241 |
Since: 3.7
|
242 |
-------------------------------------------------------------*/
|
243 |
function adrotate_ctr($clicks = 0, $impressions = 0, $round = 2) {
|
@@ -251,10 +289,103 @@ function adrotate_ctr($clicks = 0, $impressions = 0, $round = 2) {
|
|
251 |
return $ctr;
|
252 |
}
|
253 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
/*-------------------------------------------------------------
|
255 |
Name: adrotate_date_start
|
|
|
256 |
Purpose: Get and return the localized UNIX time for the current hour, day and start of the week
|
257 |
-
|
|
|
|
|
258 |
-------------------------------------------------------------*/
|
259 |
function adrotate_date_start($what) {
|
260 |
$now = adrotate_now();
|
@@ -264,14 +395,14 @@ function adrotate_date_start($what) {
|
|
264 |
switch($what) {
|
265 |
case 'hour' :
|
266 |
$string_time = gmmktime($matches[4], 0, 0, $matches[2], $matches[3], $matches[1]);
|
267 |
-
$result = gmdate('U', $string_time + (get_option('gmt_offset') *
|
268 |
break;
|
269 |
case 'day' :
|
270 |
$timezone = get_option('timezone_string');
|
271 |
if($timezone) {
|
272 |
$server_timezone = date('e');
|
273 |
date_default_timezone_set($timezone);
|
274 |
-
$result = strtotime('00:00:00') + (get_option('gmt_offset') *
|
275 |
date_default_timezone_set($server_timezone);
|
276 |
} else {
|
277 |
$result = gmdate('U', gmmktime(0, 0, 0, gmdate('n'), gmdate('j')));
|
@@ -282,39 +413,84 @@ function adrotate_date_start($what) {
|
|
282 |
if($timezone) {
|
283 |
$server_timezone = date('e');
|
284 |
date_default_timezone_set($timezone);
|
285 |
-
$result = strtotime('Last Monday', $now) + (get_option('gmt_offset') *
|
286 |
date_default_timezone_set($server_timezone);
|
287 |
} else {
|
288 |
$result = gmdate('U', gmmktime(0, 0, 0));
|
289 |
}
|
290 |
break;
|
291 |
}
|
292 |
-
|
293 |
return $result;
|
294 |
}
|
295 |
|
296 |
/*-------------------------------------------------------------
|
297 |
Name: adrotate_now
|
|
|
298 |
Purpose: Get and return the localized UNIX time for "now"
|
|
|
|
|
299 |
Since: 3.8.6.2
|
300 |
-------------------------------------------------------------*/
|
301 |
function adrotate_now() {
|
302 |
return time() + (get_option('gmt_offset') * HOUR_IN_SECONDS);
|
303 |
}
|
304 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
305 |
/*-------------------------------------------------------------
|
306 |
Name: adrotate_count_impression
|
307 |
Purpose: Count Impressions where needed
|
308 |
-
Since: 3.
|
309 |
-------------------------------------------------------------*/
|
310 |
function adrotate_count_impression($ad, $group = 0, $blog_id = 0) {
|
311 |
global $wpdb, $adrotate_config, $adrotate_debug;
|
312 |
|
313 |
if(($adrotate_config['enable_loggedin_impressions'] == 'Y' AND is_user_logged_in()) OR !is_user_logged_in()) {
|
314 |
$now = adrotate_now();
|
315 |
-
$
|
316 |
$remote_ip = adrotate_get_remote_ip();
|
317 |
|
|
|
|
|
|
|
|
|
|
|
318 |
if($adrotate_debug['timers'] == true) {
|
319 |
$impression_timer = $now;
|
320 |
} else {
|
@@ -322,25 +498,29 @@ function adrotate_count_impression($ad, $group = 0, $blog_id = 0) {
|
|
322 |
}
|
323 |
|
324 |
if($remote_ip != "unknown" AND !empty($remote_ip)) {
|
325 |
-
$saved_timer = $wpdb->get_var($wpdb->prepare("SELECT `timer` FROM `
|
326 |
if($saved_timer < $impression_timer AND adrotate_is_human()) {
|
327 |
-
$stats = $wpdb->get_var($wpdb->prepare("SELECT `id` FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d AND `group` = %d AND `thetime` = {$
|
328 |
if($stats > 0) {
|
329 |
$wpdb->query("UPDATE `{$wpdb->prefix}adrotate_stats` SET `impressions` = `impressions` + 1 WHERE `id` = {$stats};");
|
330 |
} else {
|
331 |
-
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $
|
332 |
}
|
333 |
|
334 |
$wpdb->insert($wpdb->prefix."adrotate_tracker", array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'i'));
|
335 |
}
|
336 |
}
|
|
|
|
|
|
|
|
|
337 |
}
|
338 |
}
|
339 |
|
340 |
/*-------------------------------------------------------------
|
341 |
Name: adrotate_impression_callback
|
342 |
Purpose: Register a impression for dynamic groups
|
343 |
-
Since: 3.
|
344 |
-------------------------------------------------------------*/
|
345 |
function adrotate_impression_callback() {
|
346 |
define('DONOTCACHEPAGE', true);
|
@@ -353,7 +533,7 @@ function adrotate_impression_callback() {
|
|
353 |
if($adrotate_debug['track'] != true) {
|
354 |
$meta = base64_decode($meta);
|
355 |
}
|
356 |
-
|
357 |
$meta = esc_attr($meta);
|
358 |
// Don't use $impression_timer - It's for impressions used in javascript
|
359 |
list($ad, $group, $blog_id, $impression_timer) = explode(",", $meta, 4);
|
@@ -362,11 +542,10 @@ function adrotate_impression_callback() {
|
|
362 |
wp_die();
|
363 |
}
|
364 |
|
365 |
-
|
366 |
/*-------------------------------------------------------------
|
367 |
Name: adrotate_click_callback
|
368 |
Purpose: Register clicks for clicktracking
|
369 |
-
Since: 3.
|
370 |
-------------------------------------------------------------*/
|
371 |
function adrotate_click_callback() {
|
372 |
define('DONOTCACHEPAGE', true);
|
@@ -386,12 +565,18 @@ function adrotate_click_callback() {
|
|
386 |
list($ad, $group, $blog_id, $impression_timer) = explode(",", $meta, 4);
|
387 |
|
388 |
if(is_numeric($ad) AND is_numeric($group) AND is_numeric($blog_id)) {
|
389 |
-
if(($adrotate_config['enable_loggedin_clicks'] == 'Y' AND is_user_logged_in()) OR !is_user_logged_in()) {
|
390 |
-
$remote_ip = adrotate_get_remote_ip();
|
391 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
392 |
if(adrotate_is_human() AND $remote_ip != "unknown" AND !empty($remote_ip)) {
|
393 |
$now = adrotate_now();
|
394 |
-
$
|
395 |
|
396 |
if($adrotate_debug['timers'] == true) {
|
397 |
$click_timer = $now;
|
@@ -399,20 +584,27 @@ function adrotate_click_callback() {
|
|
399 |
$click_timer = $now - $adrotate_config['click_timer'];
|
400 |
}
|
401 |
|
402 |
-
$saved_timer = $wpdb->get_var($wpdb->prepare("SELECT `timer` FROM `
|
403 |
if($saved_timer < $click_timer) {
|
404 |
-
$stats = $wpdb->get_var($wpdb->prepare("SELECT `id` FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d AND `group` = %d AND `thetime` = {$
|
405 |
if($stats > 0) {
|
406 |
$wpdb->query("UPDATE `{$wpdb->prefix}adrotate_stats` SET `clicks` = `clicks` + 1 WHERE `id` = {$stats};");
|
407 |
} else {
|
408 |
-
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $
|
409 |
}
|
410 |
|
411 |
$wpdb->insert($wpdb->prefix.'adrotate_tracker', array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'c'));
|
412 |
}
|
|
|
|
|
|
|
413 |
}
|
414 |
}
|
415 |
|
|
|
|
|
|
|
|
|
416 |
unset($remote_ip, $track, $meta, $ad, $group, $remote, $banner);
|
417 |
}
|
418 |
|
2 |
/* ------------------------------------------------------------------------------------
|
3 |
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
+
* ADROTATE is a registered trademark of Arnan de Gans.
|
6 |
|
7 |
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
* By using this code you agree to indemnify Arnan de Gans from any
|
11 |
|
12 |
/*-------------------------------------------------------------
|
13 |
Name: adrotate_draw_graph
|
14 |
+
|
15 |
Purpose: Draw graph using ElyCharts
|
16 |
+
Receive: $id, $labels, $clicks, $impressions
|
17 |
+
Return: -None-
|
18 |
Since: 3.8
|
19 |
-------------------------------------------------------------*/
|
20 |
function adrotate_draw_graph($id = 0, $labels = 0, $clicks = 0, $impressions = 0) {
|
21 |
|
22 |
if($id == 0 OR !is_numeric($id) OR strlen($labels) < 1 OR strlen($clicks) < 1 OR strlen($impressions) < 1) {
|
23 |
echo 'Syntax error, graph can not de drawn!';
|
24 |
+
echo 'id '.$id;
|
25 |
+
echo ' labels '.$labels;
|
26 |
+
echo ' clicks '.$clicks;
|
27 |
+
echo ' impressions '.$impressions;
|
28 |
} else {
|
29 |
echo '
|
30 |
<script type="text/javascript">
|
49 |
serie2: {
|
50 |
axis: "r", color: "#F80", plotProps: { "stroke-width": 2 }, dotProps: { stroke: "white", size: 3, "stroke-width": 1 }
|
51 |
}
|
52 |
+
|
53 |
},
|
54 |
defaultAxis: {
|
55 |
labels: true, labelsProps: { fill: "#777", "font-size": "10px", }, labelsAnchor: "start", labelsMargin: 5, labelsDistance: 8, labelsRotate: 65
|
56 |
},
|
57 |
axis: {
|
58 |
l: { // left axis
|
59 |
+
labels: true, labelsSkip: 1, labelsAnchor: "end", labelsMargin: 15, labelsDistance: 4, labelsProps: { fill: "#26B", "font-size": "11px", "font-weight": "bold" }
|
60 |
},
|
61 |
r: { // right axis
|
62 |
+
labels: true, labelsSkip: 1, labelsAnchor: "start", labelsMargin: 15, labelsDistance: 4, labelsProps: { fill: "#F80", "font-size": "11px", "font-weight": "bold" }
|
63 |
}
|
64 |
},
|
65 |
features: {
|
92 |
Purpose: Generate latest number of clicks and impressions
|
93 |
Since: 3.8
|
94 |
-------------------------------------------------------------*/
|
95 |
+
function adrotate_stats($ad, $archive = false, $when = 0, $until = 0) {
|
96 |
global $wpdb;
|
97 |
+
|
98 |
+
if($when > 0 AND is_numeric($when) AND $until > 0 AND is_numeric($until)) { // date range
|
99 |
+
$whenquery = " AND `thetime` >= '$when' AND `thetime` <= '$until' GROUP BY `ad` ASC";
|
100 |
+
} else if($when > 0 AND is_numeric($when) AND $until == 0) { // one day
|
101 |
$until = $when + 86400;
|
102 |
$whenquery = " AND `thetime` >= '$when' AND `thetime` <= '$until'";
|
103 |
+
} else { // everything
|
104 |
$whenquery = "";
|
105 |
}
|
106 |
|
107 |
+
$table = 'adrotate_stats';
|
108 |
+
if($archive) {
|
109 |
+
$table = 'adrotate_stats_archive';
|
110 |
+
}
|
111 |
+
|
112 |
$ad_query = '';
|
113 |
if(is_array($ad)) {
|
114 |
$ad_query .= '(';
|
120 |
} else {
|
121 |
$ad_query = '`ad` = '.$ad;
|
122 |
}
|
123 |
+
|
124 |
+
$cachekey = "adrotate_stats_".md5($ad_query.$whenquery);
|
125 |
+
$stats = wp_cache_get($cachekey);
|
126 |
+
if(false === $stats) {
|
127 |
+
$stats = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}{$table}` WHERE {$ad_query}{$whenquery};", ARRAY_A);
|
128 |
+
wp_cache_set($cachekey, $stats, '', 300);
|
129 |
+
}
|
130 |
+
unset($cachekey);
|
131 |
|
132 |
if(empty($stats['clicks'])) $stats['clicks'] = '0';
|
133 |
if(empty($stats['impressions'])) $stats['impressions'] = '0';
|
134 |
|
135 |
return $stats;
|
|
|
136 |
}
|
137 |
|
138 |
/*-------------------------------------------------------------
|
139 |
Name: adrotate_stats_nav
|
140 |
+
|
141 |
Purpose: Create browsable links for graph
|
142 |
+
Receive: $type, $id, $month, $year
|
143 |
+
Return: $nav
|
144 |
Since: 3.8
|
145 |
-------------------------------------------------------------*/
|
146 |
function adrotate_stats_nav($type, $id, $month, $year) {
|
157 |
$nextmonth = 1;
|
158 |
$nextyear = $year + 1;
|
159 |
}
|
160 |
+
$months = array(__('January', 'adrotate-pro'), __('February', 'adrotate-pro'), __('March', 'adrotate-pro'), __('April', 'adrotate-pro'), __('May', 'adrotate-pro'), __('June', 'adrotate-pro'), __('July', 'adrotate-pro'), __('August', 'adrotate-pro'), __('September', 'adrotate-pro'), __('October', 'adrotate-pro'), __('November', 'adrotate-pro'), __('December', 'adrotate-pro'));
|
161 |
|
162 |
+
$page = '';
|
163 |
+
if($type == 'ads') $page = 'adrotate-statistics&view=advert&id='.$id;
|
164 |
+
if($type == 'groups') $page = 'adrotate-statistics&view=group&id='.$id;
|
165 |
+
if($type == 'fullreport') $page = 'adrotate-statistics';
|
166 |
+
if($type == 'advertiser') $page = 'adrotate-advertiser&view=report&ad='.$id;
|
167 |
+
if($type == 'advertiserfull') $page = 'adrotate-advertiser';
|
168 |
|
169 |
+
$nav = '<a href="admin.php?page='.$page.'&month='.$lastmonth.'&year='.$lastyear.'"><< '.__('Previous', 'adrotate-pro').'</a> - ';
|
170 |
$nav .= '<strong>'.$months[$month-1].' '.$year.'</strong> - ';
|
171 |
+
$nav .= '(<a href="admin.php?page='.$page.'">'.__('This month', 'adrotate-pro').'</a>) - ';
|
172 |
+
$nav .= '<a href="admin.php?page='.$page.'&month='.$nextmonth.'&year='.$nextyear.'">'. __('Next', 'adrotate-pro').' >></a>';
|
173 |
+
|
174 |
return $nav;
|
175 |
}
|
176 |
|
177 |
/*-------------------------------------------------------------
|
178 |
Name: adrotate_stats_graph
|
179 |
+
|
180 |
Purpose: Generate graph
|
181 |
+
Receive: $type, $id, $chartid, $start, $end
|
182 |
+
Return: $output
|
183 |
Since: 3.8
|
184 |
-------------------------------------------------------------*/
|
185 |
+
function adrotate_stats_graph($type, $archive = false, $id, $chartid, $start, $end, $height = 300) {
|
186 |
global $wpdb;
|
187 |
|
188 |
+
$table = 'adrotate_stats';
|
189 |
+
if($archive) {
|
190 |
+
$table = 'adrotate_stats_archive';
|
191 |
+
}
|
192 |
+
|
193 |
if($type == 'ads' OR $type == 'advertiser') {
|
194 |
+
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}{$table}` WHERE `ad` = %d AND `thetime` >= %d AND `thetime` <= %d GROUP BY `thetime` ASC;", $id, $start, $end), ARRAY_A);
|
195 |
}
|
196 |
|
197 |
if($type == 'groups') {
|
198 |
+
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}{$table}` WHERE `group` = %d AND `thetime` >= %d AND `thetime` <= %d GROUP BY `thetime` ASC;", $id, $start, $end), ARRAY_A);
|
199 |
}
|
200 |
|
201 |
+
if($type == 'fullreport') {
|
202 |
+
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}{$table}` WHERE `thetime` >= %d AND `thetime` <= %d GROUP BY `thetime` ASC;", $start, $end), ARRAY_A);
|
203 |
}
|
204 |
|
205 |
+
if($type == 'advertiserfull') {
|
206 |
+
$stats = $wpdb->get_results($wpdb->prepare("SELECT `thetime`, SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}{$table}`, `{$wpdb->prefix}adrotate_linkmeta` WHERE `{$wpdb->prefix}adrotate_stats`.`ad` = `{$wpdb->prefix}adrotate_linkmeta`.`ad` AND `{$wpdb->prefix}adrotate_linkmeta`.`user` = %d AND `{$wpdb->prefix}adrotate_stats`.`thetime` >= %d AND `{$wpdb->prefix}adrotate_stats`.`thetime` <= %d GROUP BY `thetime` ASC;", $id, $start, $end), ARRAY_A);
|
207 |
}
|
208 |
|
209 |
if($stats) {
|
230 |
if(empty($result['clicks'])) $result['clicks'] = '0';
|
231 |
if(empty($result['impressions'])) $result['impressions'] = '0';
|
232 |
|
233 |
+
// Convert hourly stats into daily stats
|
234 |
if($result['thetime'] >= $day_start AND $result['thetime'] <= $day_end) {
|
235 |
if(empty($graph[$i]['clicks'])) $graph[$i]['clicks'] = '0';
|
236 |
if(empty($graph[$i]['impressions'])) $graph[$i]['impressions'] = '0';
|
260 |
$impressions = trim($impressions, ",");
|
261 |
|
262 |
$output = '';
|
263 |
+
$output .= '<div id="chart-'.$chartid.'" style="height:'.$height.'px; width:100%;"></div>';
|
264 |
$output .= adrotate_draw_graph($chartid, $dates, $clicks, $impressions);
|
265 |
unset($stats, $graph, $dates, $clicks, $impressions);
|
266 |
} else {
|
267 |
+
$output = __('No data to show!', 'adrotate-pro');
|
268 |
}
|
269 |
|
270 |
return $output;
|
272 |
|
273 |
/*-------------------------------------------------------------
|
274 |
Name: adrotate_ctr
|
275 |
+
|
276 |
Purpose: Calculate Click-Through-Rate
|
277 |
+
Receive: $clicks, $impressions, $round
|
278 |
+
Return: $ctr
|
279 |
Since: 3.7
|
280 |
-------------------------------------------------------------*/
|
281 |
function adrotate_ctr($clicks = 0, $impressions = 0, $round = 2) {
|
289 |
return $ctr;
|
290 |
}
|
291 |
|
292 |
+
/*-------------------------------------------------------------
|
293 |
+
Name: adrotate_prepare_fullreport
|
294 |
+
Purpose: Generate live stats for admins
|
295 |
+
Since: 3.5
|
296 |
+
-------------------------------------------------------------*/
|
297 |
+
function adrotate_prepare_fullreport() {
|
298 |
+
global $wpdb;
|
299 |
+
|
300 |
+
$today = adrotate_date_start('day');
|
301 |
+
|
302 |
+
$stats['banners'] = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}adrotate` WHERE `type` = 'active';");
|
303 |
+
$stats['tracker'] = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}adrotate` WHERE `tracker` = 'Y' AND `type` = 'active';");
|
304 |
+
$stats['overall_clicks'] = $wpdb->get_var("SELECT SUM(`clicks`) as `clicks` FROM `{$wpdb->prefix}adrotate_stats`;");
|
305 |
+
$stats['overall_impressions'] = $wpdb->get_var("SELECT SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats`;");
|
306 |
+
|
307 |
+
$this_month_start = mktime(0, 0, 0, date("m"), 1, date("Y"));
|
308 |
+
$this_month_end = mktime(0, 0, 0, date("m"), date("t"), date("Y"));
|
309 |
+
$stats['this_month_clicks'] = $wpdb->get_var("SELECT SUM(`clicks`) as `clicks` FROM `{$wpdb->prefix}adrotate_stats` WHERE `thetime` >= {$this_month_start} AND `thetime` <= {$this_month_end};");
|
310 |
+
$stats['this_month_impressions'] = $wpdb->get_var("SELECT SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `thetime` >= {$this_month_start} AND `thetime` <= {$this_month_end};");
|
311 |
+
|
312 |
+
$last_month_start = mktime(0, 0, 0, date("m")-1, 1, date("Y"));
|
313 |
+
$last_month_end = mktime(0, 0, 0, date("m"), 0, date("Y"));
|
314 |
+
$stats['last_month_clicks'] = $wpdb->get_var("SELECT SUM(`clicks`) as `clicks` FROM `{$wpdb->prefix}adrotate_stats` WHERE `thetime` >= {$last_month_start} AND `thetime` <= {$last_month_end};");
|
315 |
+
$stats['last_month_impressions'] = $wpdb->get_var("SELECT SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `thetime` >= {$last_month_start} AND `thetime` <= {$last_month_end};");
|
316 |
+
|
317 |
+
if(!$stats['banners']) $stats['banners'] = 0;
|
318 |
+
if(!$stats['tracker']) $stats['tracker'] = 0;
|
319 |
+
if(!$stats['overall_clicks']) $stats['overall_clicks'] = 0;
|
320 |
+
if(!$stats['overall_impressions']) $stats['overall_impressions'] = 0;
|
321 |
+
if(!$stats['last_month_clicks']) $stats['last_month_clicks'] = 0;
|
322 |
+
if(!$stats['last_month_impressions']) $stats['last_month_impressions'] = 0;
|
323 |
+
if(!$stats['this_month_clicks']) $stats['this_month_clicks'] = 0;
|
324 |
+
if(!$stats['this_month_impressions']) $stats['this_month_impressions'] = 0;
|
325 |
+
|
326 |
+
return $stats;
|
327 |
+
}
|
328 |
+
|
329 |
+
/*-------------------------------------------------------------
|
330 |
+
Name: adrotate_prepare_advertiser_report
|
331 |
+
|
332 |
+
Purpose: Generate live stats for advertisers
|
333 |
+
Receive: $user
|
334 |
+
Return: -None-
|
335 |
+
Since: 3.5
|
336 |
+
-------------------------------------------------------------*/
|
337 |
+
function adrotate_prepare_advertiser_report($user, $ads) {
|
338 |
+
global $wpdb;
|
339 |
+
|
340 |
+
if($ads) {
|
341 |
+
$stats['ad_amount'] = count($ads);
|
342 |
+
if(empty($stats['total_impressions'])) $stats['total_impressions'] = 0;
|
343 |
+
if(empty($stats['total_clicks'])) $stats['total_clicks'] = 0;
|
344 |
+
if(empty($stats['thebest'])) $stats['thebest'] = array('id' => 0, 'title' => __('Not found', 'adrotate-pro'), 'clicks' => 0);
|
345 |
+
if(empty($stats['theworst'])) $stats['theworst'] = array('id' => 0, 'title' => __('Not found', 'adrotate-pro'), 'clicks' => 0);
|
346 |
+
|
347 |
+
foreach($ads as $ad) {
|
348 |
+
$result = adrotate_stats($ad['id']);
|
349 |
+
$stats['total_impressions'] = $stats['total_impressions'] + $result['impressions'];
|
350 |
+
$stats['total_clicks'] = $stats['total_clicks'] + $result['clicks'];
|
351 |
+
unset($result);
|
352 |
+
}
|
353 |
+
|
354 |
+
$stats['thebest'] = $wpdb->get_row($wpdb->prepare("
|
355 |
+
SELECT `{$wpdb->prefix}adrotate`.`id`, `{$wpdb->prefix}adrotate`.`title`, SUM(`{$wpdb->prefix}adrotate_stats`.`clicks`) as `clicks`
|
356 |
+
FROM `{$wpdb->prefix}adrotate`, `{$wpdb->prefix}adrotate_linkmeta`, `{$wpdb->prefix}adrotate_stats`
|
357 |
+
WHERE `{$wpdb->prefix}adrotate`.`id` = `{$wpdb->prefix}adrotate_linkmeta`.`ad`
|
358 |
+
AND `{$wpdb->prefix}adrotate_linkmeta`.`ad` = `{$wpdb->prefix}adrotate_stats`.`ad`
|
359 |
+
AND `{$wpdb->prefix}adrotate`.`tracker` = 'Y'
|
360 |
+
AND `{$wpdb->prefix}adrotate`.`type` = 'active'
|
361 |
+
AND `{$wpdb->prefix}adrotate_linkmeta`.`user` = %d
|
362 |
+
GROUP BY `{$wpdb->prefix}adrotate`.`id`
|
363 |
+
ORDER BY `{$wpdb->prefix}adrotate_stats`.`clicks` DESC LIMIT 1;
|
364 |
+
", $user), ARRAY_A);
|
365 |
+
|
366 |
+
$stats['theworst'] = $wpdb->get_row($wpdb->prepare("
|
367 |
+
SELECT `{$wpdb->prefix}adrotate`.`id`, `{$wpdb->prefix}adrotate`.`title`, SUM(`{$wpdb->prefix}adrotate_stats`.`clicks`) as `clicks`
|
368 |
+
FROM `{$wpdb->prefix}adrotate`, `{$wpdb->prefix}adrotate_linkmeta`, `{$wpdb->prefix}adrotate_stats`
|
369 |
+
WHERE `{$wpdb->prefix}adrotate`.`id` = `{$wpdb->prefix}adrotate_linkmeta`.`ad`
|
370 |
+
AND `{$wpdb->prefix}adrotate_linkmeta`.`ad` = `{$wpdb->prefix}adrotate_stats`.`ad`
|
371 |
+
AND `{$wpdb->prefix}adrotate`.`tracker` = 'Y'
|
372 |
+
AND `{$wpdb->prefix}adrotate`.`type` = 'active'
|
373 |
+
AND `{$wpdb->prefix}adrotate_linkmeta`.`user` = %d
|
374 |
+
GROUP BY `{$wpdb->prefix}adrotate`.`id`
|
375 |
+
ORDER BY `{$wpdb->prefix}adrotate_stats`.`clicks` ASC LIMIT 1;
|
376 |
+
", $user), ARRAY_A);
|
377 |
+
|
378 |
+
return $stats;
|
379 |
+
}
|
380 |
+
}
|
381 |
+
|
382 |
/*-------------------------------------------------------------
|
383 |
Name: adrotate_date_start
|
384 |
+
|
385 |
Purpose: Get and return the localized UNIX time for the current hour, day and start of the week
|
386 |
+
Receive: $what
|
387 |
+
Return: int
|
388 |
+
Since: 3.8.7.1
|
389 |
-------------------------------------------------------------*/
|
390 |
function adrotate_date_start($what) {
|
391 |
$now = adrotate_now();
|
395 |
switch($what) {
|
396 |
case 'hour' :
|
397 |
$string_time = gmmktime($matches[4], 0, 0, $matches[2], $matches[3], $matches[1]);
|
398 |
+
$result = gmdate('U', $string_time + (get_option('gmt_offset') * 3600));
|
399 |
break;
|
400 |
case 'day' :
|
401 |
$timezone = get_option('timezone_string');
|
402 |
if($timezone) {
|
403 |
$server_timezone = date('e');
|
404 |
date_default_timezone_set($timezone);
|
405 |
+
$result = strtotime('00:00:00') + (get_option('gmt_offset') * 3600);
|
406 |
date_default_timezone_set($server_timezone);
|
407 |
} else {
|
408 |
$result = gmdate('U', gmmktime(0, 0, 0, gmdate('n'), gmdate('j')));
|
413 |
if($timezone) {
|
414 |
$server_timezone = date('e');
|
415 |
date_default_timezone_set($timezone);
|
416 |
+
$result = strtotime('Last Monday', $now) + (get_option('gmt_offset') * 3600);
|
417 |
date_default_timezone_set($server_timezone);
|
418 |
} else {
|
419 |
$result = gmdate('U', gmmktime(0, 0, 0));
|
420 |
}
|
421 |
break;
|
422 |
}
|
423 |
+
|
424 |
return $result;
|
425 |
}
|
426 |
|
427 |
/*-------------------------------------------------------------
|
428 |
Name: adrotate_now
|
429 |
+
|
430 |
Purpose: Get and return the localized UNIX time for "now"
|
431 |
+
Receive: -None-
|
432 |
+
Return: int
|
433 |
Since: 3.8.6.2
|
434 |
-------------------------------------------------------------*/
|
435 |
function adrotate_now() {
|
436 |
return time() + (get_option('gmt_offset') * HOUR_IN_SECONDS);
|
437 |
}
|
438 |
|
439 |
+
/*-------------------------------------------------------------
|
440 |
+
Name: adrotate_archive_stats
|
441 |
+
|
442 |
+
Purpose: Move stats into a secondary table when adverst are archived
|
443 |
+
Since: 4.0
|
444 |
+
-------------------------------------------------------------*/
|
445 |
+
function adrotate_archive_stats($id) {
|
446 |
+
global $wpdb;
|
447 |
+
|
448 |
+
$insert = $delete = false;
|
449 |
+
$stats = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = {$id} ORDER BY `id` ASC;");
|
450 |
+
|
451 |
+
foreach($stats as $stat) {
|
452 |
+
if($stat->id > 0) {
|
453 |
+
$insert[] = "(".$stat->ad.", ".$stat->group.", ".$stat->thetime.", ".$stat->clicks.", ".$stat->impressions.")";
|
454 |
+
$delete[] = $stat->id;
|
455 |
+
}
|
456 |
+
}
|
457 |
+
|
458 |
+
// Split the data into chunks
|
459 |
+
$insert = array_chunk($insert, 30);
|
460 |
+
|
461 |
+
// Insert each chunk to the archive table
|
462 |
+
if(is_array($insert)) {
|
463 |
+
foreach($insert as $chunk) {
|
464 |
+
$wpdb->query("INSERT INTO `{$wpdb->prefix}adrotate_stats_archive` (`ad`, `group`, `thetime`, `clicks`, `impressions`)
|
465 |
+
VALUES ".implode(",", $chunk).";");
|
466 |
+
unset($chunk);
|
467 |
+
}
|
468 |
+
|
469 |
+
// Delete old stats
|
470 |
+
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_stats` WHERE `id` IN (".implode(",", $delete).");");
|
471 |
+
}
|
472 |
+
|
473 |
+
unset($stats, $insert, $delete);
|
474 |
+
}
|
475 |
+
|
476 |
/*-------------------------------------------------------------
|
477 |
Name: adrotate_count_impression
|
478 |
Purpose: Count Impressions where needed
|
479 |
+
Since: 3.11.3
|
480 |
-------------------------------------------------------------*/
|
481 |
function adrotate_count_impression($ad, $group = 0, $blog_id = 0) {
|
482 |
global $wpdb, $adrotate_config, $adrotate_debug;
|
483 |
|
484 |
if(($adrotate_config['enable_loggedin_impressions'] == 'Y' AND is_user_logged_in()) OR !is_user_logged_in()) {
|
485 |
$now = adrotate_now();
|
486 |
+
$today = adrotate_date_start('day');
|
487 |
$remote_ip = adrotate_get_remote_ip();
|
488 |
|
489 |
+
if($blog_id > 0 AND adrotate_is_networked()) {
|
490 |
+
$current_blog = $wpdb->blogid;
|
491 |
+
switch_to_blog($blog_id);
|
492 |
+
}
|
493 |
+
|
494 |
if($adrotate_debug['timers'] == true) {
|
495 |
$impression_timer = $now;
|
496 |
} else {
|
498 |
}
|
499 |
|
500 |
if($remote_ip != "unknown" AND !empty($remote_ip)) {
|
501 |
+
$saved_timer = $wpdb->get_var($wpdb->prepare("SELECT `timer` FROM `{$wpdb->prefix}adrotate_tracker` WHERE `ipaddress` = '%s' AND `stat` = 'i' AND `bannerid` = %d ORDER BY `timer` DESC LIMIT 1;", $remote_ip, $ad));
|
502 |
if($saved_timer < $impression_timer AND adrotate_is_human()) {
|
503 |
+
$stats = $wpdb->get_var($wpdb->prepare("SELECT `id` FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d AND `group` = %d AND `thetime` = {$today};", $ad, $group));
|
504 |
if($stats > 0) {
|
505 |
$wpdb->query("UPDATE `{$wpdb->prefix}adrotate_stats` SET `impressions` = `impressions` + 1 WHERE `id` = {$stats};");
|
506 |
} else {
|
507 |
+
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $today, 'clicks' => 0, 'impressions' => 1));
|
508 |
}
|
509 |
|
510 |
$wpdb->insert($wpdb->prefix."adrotate_tracker", array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'i'));
|
511 |
}
|
512 |
}
|
513 |
+
|
514 |
+
if($blog_id > 0 AND adrotate_is_networked()) {
|
515 |
+
switch_to_blog($current_blog);
|
516 |
+
}
|
517 |
}
|
518 |
}
|
519 |
|
520 |
/*-------------------------------------------------------------
|
521 |
Name: adrotate_impression_callback
|
522 |
Purpose: Register a impression for dynamic groups
|
523 |
+
Since: 3.11.4
|
524 |
-------------------------------------------------------------*/
|
525 |
function adrotate_impression_callback() {
|
526 |
define('DONOTCACHEPAGE', true);
|
533 |
if($adrotate_debug['track'] != true) {
|
534 |
$meta = base64_decode($meta);
|
535 |
}
|
536 |
+
|
537 |
$meta = esc_attr($meta);
|
538 |
// Don't use $impression_timer - It's for impressions used in javascript
|
539 |
list($ad, $group, $blog_id, $impression_timer) = explode(",", $meta, 4);
|
542 |
wp_die();
|
543 |
}
|
544 |
|
|
|
545 |
/*-------------------------------------------------------------
|
546 |
Name: adrotate_click_callback
|
547 |
Purpose: Register clicks for clicktracking
|
548 |
+
Since: 3.11.4
|
549 |
-------------------------------------------------------------*/
|
550 |
function adrotate_click_callback() {
|
551 |
define('DONOTCACHEPAGE', true);
|
565 |
list($ad, $group, $blog_id, $impression_timer) = explode(",", $meta, 4);
|
566 |
|
567 |
if(is_numeric($ad) AND is_numeric($group) AND is_numeric($blog_id)) {
|
|
|
|
|
568 |
|
569 |
+
if($blog_id > 0 AND adrotate_is_networked()) {
|
570 |
+
$current_blog = $wpdb->blogid;
|
571 |
+
switch_to_blog($blog_id);
|
572 |
+
}
|
573 |
+
|
574 |
+
if(($adrotate_config['enable_loggedin_clicks'] == 'Y' AND is_user_logged_in()) OR !is_user_logged_in()) {
|
575 |
+
$remote_ip = adrotate_get_remote_ip();
|
576 |
+
|
577 |
if(adrotate_is_human() AND $remote_ip != "unknown" AND !empty($remote_ip)) {
|
578 |
$now = adrotate_now();
|
579 |
+
$today = adrotate_date_start('day');
|
580 |
|
581 |
if($adrotate_debug['timers'] == true) {
|
582 |
$click_timer = $now;
|
584 |
$click_timer = $now - $adrotate_config['click_timer'];
|
585 |
}
|
586 |
|
587 |
+
$saved_timer = $wpdb->get_var($wpdb->prepare("SELECT `timer` FROM `{$wpdb->prefix}adrotate_tracker` WHERE `ipaddress` = '%s' AND `stat` = 'c' AND `bannerid` = %d ORDER BY `timer` DESC LIMIT 1;", $remote_ip, $ad));
|
588 |
if($saved_timer < $click_timer) {
|
589 |
+
$stats = $wpdb->get_var($wpdb->prepare("SELECT `id` FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d AND `group` = %d AND `thetime` = {$today};", $ad, $group));
|
590 |
if($stats > 0) {
|
591 |
$wpdb->query("UPDATE `{$wpdb->prefix}adrotate_stats` SET `clicks` = `clicks` + 1 WHERE `id` = {$stats};");
|
592 |
} else {
|
593 |
+
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $today, 'clicks' => 1, 'impressions' => 1));
|
594 |
}
|
595 |
|
596 |
$wpdb->insert($wpdb->prefix.'adrotate_tracker', array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'c'));
|
597 |
}
|
598 |
+
|
599 |
+
// Advertising budget
|
600 |
+
$wpdb->query("UPDATE `{$wpdb->prefix}adrotate` SET `budget` = `budget` - `crate` WHERE `id` = {$ad} AND `crate` > 0;");
|
601 |
}
|
602 |
}
|
603 |
|
604 |
+
if($blog_id > 0 AND adrotate_is_networked()) {
|
605 |
+
switch_to_blog($current_blog);
|
606 |
+
}
|
607 |
+
|
608 |
unset($remote_ip, $track, $meta, $ad, $group, $remote, $banner);
|
609 |
}
|
610 |
|
adrotate.php
CHANGED
@@ -7,7 +7,7 @@ Author URI: http://ajdg.solutions/?utm_campaign=homepage&utm_medium=plugin-info&
|
|
7 |
Description: Monetise your website with adverts while keeping things simple. Start making money today!
|
8 |
Text Domain: adrotate
|
9 |
Domain Path: /languages/
|
10 |
-
Version: 4.
|
11 |
License: GPLv3
|
12 |
*/
|
13 |
|
@@ -22,7 +22,7 @@ License: GPLv3
|
|
22 |
------------------------------------------------------------------------------------ */
|
23 |
|
24 |
/*--- AdRotate values ---------------------------------------*/
|
25 |
-
define("ADROTATE_DISPLAY", '4.
|
26 |
define("ADROTATE_VERSION", 391);
|
27 |
define("ADROTATE_DB_VERSION", 64);
|
28 |
$plugin_folder = plugin_dir_path(__FILE__);
|
@@ -104,6 +104,9 @@ function adrotate_dashboard() {
|
|
104 |
$adrotate_pro = add_submenu_page('adrotate', 'AdRotate · '.__('AdRotate Pro', 'adrotate'), __('AdRotate Pro', 'adrotate'), 'adrotate_ad_manage', 'adrotate-pro', 'adrotate_pro');
|
105 |
$adrotate_adverts = add_submenu_page('adrotate', 'AdRotate · '.__('Adverts', 'adrotate'), __('Adverts', 'adrotate'), 'adrotate_ad_manage', 'adrotate-ads', 'adrotate_manage');
|
106 |
$adrotate_groups = add_submenu_page('adrotate', 'AdRotate · '.__('Groups', 'adrotate'), __('Groups', 'adrotate'), 'adrotate_group_manage', 'adrotate-groups', 'adrotate_manage_group');
|
|
|
|
|
|
|
107 |
$adrotate_settings = add_submenu_page('adrotate', 'AdRotate · '.__('Settings', 'adrotate'), __('Settings', 'adrotate'), 'manage_options', 'adrotate-settings', 'adrotate_options');
|
108 |
|
109 |
// Add help tabs
|
@@ -111,6 +114,9 @@ function adrotate_dashboard() {
|
|
111 |
add_action('load-'.$adrotate_pro, 'adrotate_help_info');
|
112 |
add_action('load-'.$adrotate_adverts, 'adrotate_help_info');
|
113 |
add_action('load-'.$adrotate_groups, 'adrotate_help_info');
|
|
|
|
|
|
|
114 |
add_action('load-'.$adrotate_settings, 'adrotate_help_info');
|
115 |
}
|
116 |
|
@@ -241,7 +247,7 @@ function adrotate_manage() {
|
|
241 |
<div class="tablenav">
|
242 |
<div class="alignleft actions">
|
243 |
<a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads');?>"><?php _e('Manage', 'adrotate'); ?></a>
|
244 |
-
| <a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads&view=generator');?>"><?php _e('Generator', 'adrotate
|
245 |
| <a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads&view=addnew');?>"><?php _e('Add New', 'adrotate'); ?></a>
|
246 |
</div>
|
247 |
</div>
|
@@ -345,6 +351,130 @@ function adrotate_manage_group() {
|
|
345 |
<?php
|
346 |
}
|
347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
/*-------------------------------------------------------------
|
349 |
Name: adrotate_options
|
350 |
Purpose: Admin options page
|
7 |
Description: Monetise your website with adverts while keeping things simple. Start making money today!
|
8 |
Text Domain: adrotate
|
9 |
Domain Path: /languages/
|
10 |
+
Version: 4.6
|
11 |
License: GPLv3
|
12 |
*/
|
13 |
|
22 |
------------------------------------------------------------------------------------ */
|
23 |
|
24 |
/*--- AdRotate values ---------------------------------------*/
|
25 |
+
define("ADROTATE_DISPLAY", '4.6');
|
26 |
define("ADROTATE_VERSION", 391);
|
27 |
define("ADROTATE_DB_VERSION", 64);
|
28 |
$plugin_folder = plugin_dir_path(__FILE__);
|
104 |
$adrotate_pro = add_submenu_page('adrotate', 'AdRotate · '.__('AdRotate Pro', 'adrotate'), __('AdRotate Pro', 'adrotate'), 'adrotate_ad_manage', 'adrotate-pro', 'adrotate_pro');
|
105 |
$adrotate_adverts = add_submenu_page('adrotate', 'AdRotate · '.__('Adverts', 'adrotate'), __('Adverts', 'adrotate'), 'adrotate_ad_manage', 'adrotate-ads', 'adrotate_manage');
|
106 |
$adrotate_groups = add_submenu_page('adrotate', 'AdRotate · '.__('Groups', 'adrotate'), __('Groups', 'adrotate'), 'adrotate_group_manage', 'adrotate-groups', 'adrotate_manage_group');
|
107 |
+
$adrotate_schedules = add_submenu_page('adrotate', 'AdRotate · '.__('Schedules', 'adrotate'), __('Schedules', 'adrotate'), 'adrotate_ad_manage', 'adrotate-schedules', 'adrotate_manage_schedules');
|
108 |
+
$adrotate_statistics = add_submenu_page('adrotate', 'AdRotate · '.__('Statistics', 'adrotate'), __('Statistics', 'adrotate'), 'adrotate_ad_manage', 'adrotate-statistics', 'adrotate_statistics');
|
109 |
+
$adrotate_media = add_submenu_page('adrotate', 'AdRotate · '.__('Media', 'adrotate'), __('Media', 'adrotate'), 'adrotate_ad_manage', 'adrotate-media', 'adrotate_manage_media');
|
110 |
$adrotate_settings = add_submenu_page('adrotate', 'AdRotate · '.__('Settings', 'adrotate'), __('Settings', 'adrotate'), 'manage_options', 'adrotate-settings', 'adrotate_options');
|
111 |
|
112 |
// Add help tabs
|
114 |
add_action('load-'.$adrotate_pro, 'adrotate_help_info');
|
115 |
add_action('load-'.$adrotate_adverts, 'adrotate_help_info');
|
116 |
add_action('load-'.$adrotate_groups, 'adrotate_help_info');
|
117 |
+
add_action('load-'.$adrotate_schedules, 'adrotate_help_info');
|
118 |
+
add_action('load-'.$adrotate_statistics, 'adrotate_help_info');
|
119 |
+
add_action('load-'.$adrotate_media, 'adrotate_help_info');
|
120 |
add_action('load-'.$adrotate_settings, 'adrotate_help_info');
|
121 |
}
|
122 |
|
247 |
<div class="tablenav">
|
248 |
<div class="alignleft actions">
|
249 |
<a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads');?>"><?php _e('Manage', 'adrotate'); ?></a>
|
250 |
+
| <a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads&view=generator');?>"><?php _e('Generator', 'adrotate'); ?></a>
|
251 |
| <a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads&view=addnew');?>"><?php _e('Add New', 'adrotate'); ?></a>
|
252 |
</div>
|
253 |
</div>
|
351 |
<?php
|
352 |
}
|
353 |
|
354 |
+
/*-------------------------------------------------------------
|
355 |
+
Name: adrotate_manage_schedules
|
356 |
+
Purpose: Manage schedules for ads
|
357 |
+
-------------------------------------------------------------*/
|
358 |
+
function adrotate_manage_schedules() {
|
359 |
+
global $wpdb, $adrotate_config;
|
360 |
+
|
361 |
+
$now = adrotate_now();
|
362 |
+
$in2days = $now + 172800;
|
363 |
+
?>
|
364 |
+
<div class="wrap">
|
365 |
+
<h1><?php _e('Schedules', 'adrotate'); ?></h1>
|
366 |
+
|
367 |
+
<?php
|
368 |
+
include("dashboard/publisher/schedules-main.php");
|
369 |
+
?>
|
370 |
+
|
371 |
+
<br class="clear" />
|
372 |
+
|
373 |
+
<?php adrotate_credits(); ?>
|
374 |
+
|
375 |
+
<br class="clear" />
|
376 |
+
</div>
|
377 |
+
<?php
|
378 |
+
}
|
379 |
+
|
380 |
+
/*-------------------------------------------------------------
|
381 |
+
Name: adrotate_statistics
|
382 |
+
Purpose: Advert and Group stats
|
383 |
+
-------------------------------------------------------------*/
|
384 |
+
function adrotate_statistics() {
|
385 |
+
global $wpdb, $adrotate_config;
|
386 |
+
|
387 |
+
$status = $view = $id = $file = '';
|
388 |
+
if(isset($_GET['status'])) $status = esc_attr($_GET['status']);
|
389 |
+
if(isset($_GET['view'])) $view = esc_attr($_GET['view']);
|
390 |
+
if(isset($_GET['id'])) $id = esc_attr($_GET['id']);
|
391 |
+
if(isset($_GET['file'])) $file = esc_attr($_GET['file']);
|
392 |
+
|
393 |
+
if(isset($_GET['month']) AND isset($_GET['year'])) {
|
394 |
+
$month = esc_attr($_GET['month']);
|
395 |
+
$year = esc_attr($_GET['year']);
|
396 |
+
} else {
|
397 |
+
$month = date("m");
|
398 |
+
$year = date("Y");
|
399 |
+
}
|
400 |
+
$monthstart = mktime(0, 0, 0, $month, 1, $year);
|
401 |
+
$monthend = mktime(0, 0, 0, $month+1, 0, $year);
|
402 |
+
$today = adrotate_date_start('day');
|
403 |
+
?>
|
404 |
+
<div class="wrap">
|
405 |
+
<h2><?php _e('Statistics', 'adrotate'); ?></h2>
|
406 |
+
|
407 |
+
<?php if($status > 0) adrotate_status($status, array('file' => $file)); ?>
|
408 |
+
|
409 |
+
<?php
|
410 |
+
if ($view == "") {
|
411 |
+
$stats = adrotate_prepare_fullreport();
|
412 |
+
$stats_graph_month = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `thetime` >= {$monthstart} AND `thetime` <= {$monthend};", ARRAY_A);
|
413 |
+
if(empty($stats_graph_month['impressions'])) $stats_graph_month['impressions'] = 0;
|
414 |
+
if(empty($stats_graph_month['clicks'])) $stats_graph_month['clicks'] = 0;
|
415 |
+
|
416 |
+
// Get Click Through Rate
|
417 |
+
$ctr_alltime = adrotate_ctr($stats['overall_clicks'], $stats['overall_impressions']);
|
418 |
+
$ctr_last_month = adrotate_ctr($stats['last_month_clicks'], $stats['last_month_impressions']);
|
419 |
+
$ctr_this_month = adrotate_ctr($stats['this_month_clicks'], $stats['this_month_impressions']);
|
420 |
+
$ctr_graph_month = adrotate_ctr($stats_graph_month['clicks'], $stats_graph_month['impressions']);
|
421 |
+
|
422 |
+
include("dashboard/publisher/statistics-main.php");
|
423 |
+
} else if($view == "advert") {
|
424 |
+
include("dashboard/publisher/statistics-advert.php");
|
425 |
+
} else if($view == "group") {
|
426 |
+
include("dashboard/publisher/statistics-group.php");
|
427 |
+
}
|
428 |
+
?>
|
429 |
+
<br class="clear" />
|
430 |
+
|
431 |
+
<?php adrotate_credits(); ?>
|
432 |
+
|
433 |
+
<br class="clear" />
|
434 |
+
</div>
|
435 |
+
<?php
|
436 |
+
}
|
437 |
+
|
438 |
+
/*-------------------------------------------------------------
|
439 |
+
Name: adrotate_manage_media
|
440 |
+
Purpose: Manage banner images for ads
|
441 |
+
-------------------------------------------------------------*/
|
442 |
+
function adrotate_manage_media() {
|
443 |
+
global $wpdb, $adrotate_config;
|
444 |
+
|
445 |
+
$status = $file = '';
|
446 |
+
if(isset($_GET['status'])) $status = esc_attr($_GET['status']);
|
447 |
+
if(isset($_GET['file'])) $file = esc_attr($_GET['file']);
|
448 |
+
|
449 |
+
if(strlen($file) > 0 AND wp_verify_nonce($_REQUEST['_wpnonce'], 'adrotate_delete_media_'.$file)) {
|
450 |
+
if(adrotate_unlink($file)) {
|
451 |
+
$status = 206;
|
452 |
+
} else {
|
453 |
+
$status = 207;
|
454 |
+
}
|
455 |
+
}
|
456 |
+
?>
|
457 |
+
|
458 |
+
<div class="wrap">
|
459 |
+
<h1><?php _e('Media and Assets', 'adrotate'); ?></h1>
|
460 |
+
|
461 |
+
<?php if($status > 0) adrotate_status($status); ?>
|
462 |
+
|
463 |
+
<p><?php _e('Upload images to the AdRotate Pro banners folder from here. This is useful if you have HTML5 adverts containing multiple files.', 'adrotate'); ?><br /><?php _e('Get more features', 'adrotate'); ?> - <a href="admin.php?page=adrotate-pro"><?php _e('Get AdRotate Pro', 'adrotate'); ?></a>!</p>
|
464 |
+
|
465 |
+
<?php
|
466 |
+
include("dashboard/publisher/media.php");
|
467 |
+
?>
|
468 |
+
|
469 |
+
<br class="clear" />
|
470 |
+
|
471 |
+
<?php adrotate_credits(); ?>
|
472 |
+
|
473 |
+
<br class="clear" />
|
474 |
+
</div>
|
475 |
+
<?php
|
476 |
+
}
|
477 |
+
|
478 |
/*-------------------------------------------------------------
|
479 |
Name: adrotate_options
|
480 |
Purpose: Admin options page
|
dashboard/publisher/adverts-edit.php
CHANGED
@@ -126,7 +126,7 @@ if($edit_banner->imagetype == "field") {
|
|
126 |
<p><em><a href="#" onclick="textatcursor('adrotate_bannercode','<a href="https://ajdg.solutions/"><img src="%asset%" /></a>');return false;"><a href="https://ajdg.solutions/"><img src="%asset%" /></a></a></em></p>
|
127 |
<p><em><a href="#" onclick="textatcursor('adrotate_bannercode','<iframe src="%asset%" height="250" frameborder="0" style="border:none;"></iframe>');return false;"><iframe src="%asset%" height="250" frameborder="0" style="border:none;"></iframe></a></em></p>
|
128 |
|
129 |
-
<p><strong><?php _e('Get
|
130 |
<p><a href="http://ajdg.link/medianet" target="_blank"><img src="<?php echo plugins_url("../images/medianet-small-$partner.jpg", dirname(__FILE__)); ?>" width="250" /></a></p>
|
131 |
</td>
|
132 |
</tr>
|
@@ -185,7 +185,7 @@ if($edit_banner->imagetype == "field") {
|
|
185 |
</tr>
|
186 |
</tbody>
|
187 |
</table>
|
188 |
-
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('
|
189 |
|
190 |
<p class="submit">
|
191 |
<input tabindex="8" type="submit" name="adrotate_ad_submit" class="button-primary" value="<?php _e('Save Advert', 'adrotate'); ?>" />
|
@@ -285,7 +285,7 @@ if($edit_banner->imagetype == "field") {
|
|
285 |
</tr>
|
286 |
</tbody>
|
287 |
</table>
|
288 |
-
<center><?php _e('Create multiple and more advanced schedules for each advert with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade
|
289 |
|
290 |
<p class="submit">
|
291 |
<input tabindex="21" type="submit" name="adrotate_ad_submit" class="button-primary" value="<?php _e('Save Advert', 'adrotate'); ?>" />
|
@@ -354,7 +354,7 @@ if($edit_banner->imagetype == "field") {
|
|
354 |
</tr>
|
355 |
</tbody>
|
356 |
</table>
|
357 |
-
<center><?php _e('With AdRotate Pro you can easily select which devices and mobile operating systems the advert should show on!', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade
|
358 |
|
359 |
<h2><?php _e('Geo Targeting', 'adrotate-pro'); ?></h2>
|
360 |
<p><em><?php _e('Assign the advert to a group and enable that group to use Geo Targeting.', 'adrotate-pro'); ?> <?php _e('Available in AdRotate Pro!', 'adrotate'); ?></em></p>
|
@@ -425,7 +425,7 @@ if($edit_banner->imagetype == "field") {
|
|
425 |
</div>
|
426 |
</div>
|
427 |
<div class="clear"></div>
|
428 |
-
<center><?php _e('Target your audience with Geo Targeting in AdRotate Pro', 'adrotate'); ?>, <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade
|
429 |
|
430 |
<h3><?php _e('Usage', 'adrotate'); ?></h3>
|
431 |
<table class="widefat" style="margin-top: .5em">
|
126 |
<p><em><a href="#" onclick="textatcursor('adrotate_bannercode','<a href="https://ajdg.solutions/"><img src="%asset%" /></a>');return false;"><a href="https://ajdg.solutions/"><img src="%asset%" /></a></a></em></p>
|
127 |
<p><em><a href="#" onclick="textatcursor('adrotate_bannercode','<iframe src="%asset%" height="250" frameborder="0" style="border:none;"></iframe>');return false;"><iframe src="%asset%" height="250" frameborder="0" style="border:none;"></iframe></a></em></p>
|
128 |
|
129 |
+
<p><strong><?php _e('Get adverts from Media.net', 'adrotate'); ?></strong></p>
|
130 |
<p><a href="http://ajdg.link/medianet" target="_blank"><img src="<?php echo plugins_url("../images/medianet-small-$partner.jpg", dirname(__FILE__)); ?>" width="250" /></a></p>
|
131 |
</td>
|
132 |
</tr>
|
185 |
</tr>
|
186 |
</tbody>
|
187 |
</table>
|
188 |
+
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
189 |
|
190 |
<p class="submit">
|
191 |
<input tabindex="8" type="submit" name="adrotate_ad_submit" class="button-primary" value="<?php _e('Save Advert', 'adrotate'); ?>" />
|
285 |
</tr>
|
286 |
</tbody>
|
287 |
</table>
|
288 |
+
<center><?php _e('Create multiple and more advanced schedules for each advert with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
289 |
|
290 |
<p class="submit">
|
291 |
<input tabindex="21" type="submit" name="adrotate_ad_submit" class="button-primary" value="<?php _e('Save Advert', 'adrotate'); ?>" />
|
354 |
</tr>
|
355 |
</tbody>
|
356 |
</table>
|
357 |
+
<center><?php _e('With AdRotate Pro you can easily select which devices and mobile operating systems the advert should show on!', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
358 |
|
359 |
<h2><?php _e('Geo Targeting', 'adrotate-pro'); ?></h2>
|
360 |
<p><em><?php _e('Assign the advert to a group and enable that group to use Geo Targeting.', 'adrotate-pro'); ?> <?php _e('Available in AdRotate Pro!', 'adrotate'); ?></em></p>
|
425 |
</div>
|
426 |
</div>
|
427 |
<div class="clear"></div>
|
428 |
+
<center><?php _e('Target your audience with Geo Targeting in AdRotate Pro', 'adrotate'); ?>, <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
429 |
|
430 |
<h3><?php _e('Usage', 'adrotate'); ?></h3>
|
431 |
<table class="widefat" style="margin-top: .5em">
|
dashboard/publisher/adverts-main.php
CHANGED
@@ -78,7 +78,7 @@
|
|
78 |
<th class="check-column"><input type="checkbox" name="bannercheck[]" value="<?php echo $banner['id']; ?>" /></th>
|
79 |
<td><center><?php echo $banner['id'];?></center></td>
|
80 |
<td><?php echo date_i18n("F d, Y", $banner['firstactive']);?><br /><span style="color: <?php echo adrotate_prepare_color($banner['lastactive']);?>;"><?php echo date_i18n("F d, Y", $banner['lastactive']);?></span></td>
|
81 |
-
<td><strong><a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads&view=edit&ad='.$banner['id']);?>" title="<?php _e('Edit', 'adrotate'); ?>"><?php echo stripslashes(html_entity_decode($banner['title']));?></a></strong> <?php if($adrotate_config['stats'] == 1) { ?>- <a href="<?php echo admin_url('/admin.php?page=adrotate-
|
82 |
<?php if($adrotate_config['stats'] == 1) { ?>
|
83 |
<td><center><?php echo $stats['impressions']; ?></center></td>
|
84 |
<td><center><?php echo $stats_today['impressions']; ?></center></td>
|
@@ -102,6 +102,6 @@
|
|
102 |
<?php } ?>
|
103 |
</tbody>
|
104 |
</table>
|
105 |
-
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('
|
106 |
|
107 |
</form>
|
78 |
<th class="check-column"><input type="checkbox" name="bannercheck[]" value="<?php echo $banner['id']; ?>" /></th>
|
79 |
<td><center><?php echo $banner['id'];?></center></td>
|
80 |
<td><?php echo date_i18n("F d, Y", $banner['firstactive']);?><br /><span style="color: <?php echo adrotate_prepare_color($banner['lastactive']);?>;"><?php echo date_i18n("F d, Y", $banner['lastactive']);?></span></td>
|
81 |
+
<td><strong><a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-ads&view=edit&ad='.$banner['id']);?>" title="<?php _e('Edit', 'adrotate'); ?>"><?php echo stripslashes(html_entity_decode($banner['title']));?></a></strong> <?php if($adrotate_config['stats'] == 1) { ?>- <a href="<?php echo admin_url('/admin.php?page=adrotate-statistics&view=advert&id='.$banner['id']);?>" title="<?php _e('Stats', 'adrotate'); ?>"><?php _e('Stats', 'adrotate'); ?></a><?php } ?><span style="color:#999;"><?php if(strlen($grouplist) > 0) echo '<br /><span style="font-weight:bold;">'.__('Groups:', 'adrotate').'</span> '.$grouplist; ?></span></td>
|
82 |
<?php if($adrotate_config['stats'] == 1) { ?>
|
83 |
<td><center><?php echo $stats['impressions']; ?></center></td>
|
84 |
<td><center><?php echo $stats_today['impressions']; ?></center></td>
|
102 |
<?php } ?>
|
103 |
</tbody>
|
104 |
</table>
|
105 |
+
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
106 |
|
107 |
</form>
|
dashboard/publisher/adverts-report.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/* ------------------------------------------------------------------------------------
|
3 |
-
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
-
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
-
* ADROTATE is a trademark of Arnan de Gans.
|
6 |
-
|
7 |
-
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
-
* By using this code you agree to indemnify Arnan de Gans from any
|
9 |
-
* liability that might arise from it's use.
|
10 |
-
------------------------------------------------------------------------------------ */
|
11 |
-
|
12 |
-
$banner = $wpdb->get_row("SELECT `title`, `tracker` FROM `".$wpdb->prefix."adrotate` WHERE `id` = '$ad_edit_id';");
|
13 |
-
$stats = adrotate_stats($ad_edit_id);
|
14 |
-
$stats_today = adrotate_stats($ad_edit_id, $today);
|
15 |
-
$stats_graph_month = adrotate_stats($ad_edit_id, $monthstart, $monthend);
|
16 |
-
|
17 |
-
// Get Click Through Rate
|
18 |
-
$ctr = adrotate_ctr($stats['clicks'], $stats['impressions']);
|
19 |
-
$ctr_graph_month = adrotate_ctr($stats_graph_month['clicks'], $stats_graph_month['impressions']);
|
20 |
-
|
21 |
-
// Prevent gaps in display
|
22 |
-
if(empty($stats['impressions'])) $stats['impressions'] = 0;
|
23 |
-
if(empty($stats['clicks'])) $stats['clicks'] = 0;
|
24 |
-
if(empty($stats_today['impressions'])) $stats_today['impressions'] = 0;
|
25 |
-
if(empty($stats_today['clicks'])) $stats_today['clicks'] = 0;
|
26 |
-
if(empty($stats_graph_month['impressions'])) $stats_graph_month['impressions'] = 0;
|
27 |
-
if(empty($stats_graph_month['clicks'])) $stats_graph_month['clicks'] = 0;
|
28 |
-
?>
|
29 |
-
|
30 |
-
<h3><?php _e('Statistics for advert', 'adrotate'); ?> '<?php echo $banner->title; ?>'</h3>
|
31 |
-
<table class="widefat" style="margin-top: .5em">
|
32 |
-
|
33 |
-
<tbody>
|
34 |
-
<tr>
|
35 |
-
<td width="20%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['impressions']; ?></div></div></td>
|
36 |
-
<td width="20%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php if($banner->tracker == "Y") { echo $stats['clicks']; } else { echo '--'; } ?></div></div></td>
|
37 |
-
<td width="20%"><div class="stats_large"><?php _e('Impressions today', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_today['impressions']; ?></div></div></td>
|
38 |
-
<td width="20%"><div class="stats_large"><?php _e('Clicks today', 'adrotate'); ?><br /><div class="number_large"><?php if($banner->tracker == "Y") { echo $stats_today['clicks']; } else { echo '--'; } ?></div></div></td>
|
39 |
-
<td width="20%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php if($banner->tracker == "Y") { echo $ctr.' %'; } else { echo '--'; } ?></div></div></td>
|
40 |
-
</tr>
|
41 |
-
<tbody>
|
42 |
-
|
43 |
-
</table>
|
44 |
-
|
45 |
-
<h3><?php _e('Monthly overview of clicks and impressions', 'adrotate'); ?></h3>
|
46 |
-
<table class="widefat" style="margin-top: .5em">
|
47 |
-
|
48 |
-
<tbody>
|
49 |
-
<tr>
|
50 |
-
<th colspan="3">
|
51 |
-
<div style="text-align:center;"><?php echo adrotate_stats_nav('ads', $ad_edit_id, $month, $year); ?></div>
|
52 |
-
<?php echo adrotate_stats_graph('ads', $ad_edit_id, 1, $monthstart, $monthend); ?>
|
53 |
-
</th>
|
54 |
-
</tr>
|
55 |
-
<tr>
|
56 |
-
<td width="33%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_graph_month['impressions']; ?></div></div></td>
|
57 |
-
<td width="33%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php if($banner->tracker == "Y") { echo $stats_graph_month['clicks']; } else { echo '--'; } ?></div></div></td>
|
58 |
-
<td width="34%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php if($banner->tracker == "Y") { echo $ctr_graph_month.' %'; } else { echo '--'; } ?></div></div></td>
|
59 |
-
</tr>
|
60 |
-
</tbody>
|
61 |
-
|
62 |
-
</table>
|
63 |
-
|
64 |
-
<p><em><strong><?php _e('Note:', 'adrotate'); ?></strong> <?php _e('All statistics are indicative. They do not nessesarily reflect results counted by other parties.', 'adrotate'); ?></em></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dashboard/publisher/groups-edit.php
CHANGED
@@ -27,7 +27,7 @@ $groups = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}adrotate_groups` WHE
|
|
27 |
$ads = $wpdb->get_results("SELECT `id`, `title`, `tracker`, `weight`, `type` FROM `{$wpdb->prefix}adrotate` WHERE (`type` != 'empty' AND `type` != 'a_empty') ORDER BY `id` ASC;");
|
28 |
$linkmeta = $wpdb->get_results("SELECT `ad` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `group` = '$group_edit_id' AND `user` = 0;");
|
29 |
|
30 |
-
$meta_array =
|
31 |
foreach($linkmeta as $meta) {
|
32 |
$meta_array[] = $meta->ad;
|
33 |
}
|
@@ -68,7 +68,7 @@ if(!is_array($meta_array)) $meta_array = array();
|
|
68 |
</tr>
|
69 |
</tbody>
|
70 |
</table>
|
71 |
-
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('
|
72 |
|
73 |
<h3><?php _e('Dynamic and Block Mode', 'adrotate'); ?></h3>
|
74 |
<p><em><?php _e('Only required if your group is in Dynamic or Block mode.', 'adrotate'); ?></em></p>
|
@@ -188,7 +188,7 @@ if(!is_array($meta_array)) $meta_array = array();
|
|
188 |
</tr>
|
189 |
</tbody>
|
190 |
</table>
|
191 |
-
<center><?php _e('Set up mobile support and use Geo Targeting in AdRotate Pro', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade
|
192 |
|
193 |
<div id="dashboard-widgets-wrap">
|
194 |
<div id="dashboard-widgets" class="metabox-holder">
|
27 |
$ads = $wpdb->get_results("SELECT `id`, `title`, `tracker`, `weight`, `type` FROM `{$wpdb->prefix}adrotate` WHERE (`type` != 'empty' AND `type` != 'a_empty') ORDER BY `id` ASC;");
|
28 |
$linkmeta = $wpdb->get_results("SELECT `ad` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `group` = '$group_edit_id' AND `user` = 0;");
|
29 |
|
30 |
+
$meta_array = array();
|
31 |
foreach($linkmeta as $meta) {
|
32 |
$meta_array[] = $meta->ad;
|
33 |
}
|
68 |
</tr>
|
69 |
</tbody>
|
70 |
</table>
|
71 |
+
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
72 |
|
73 |
<h3><?php _e('Dynamic and Block Mode', 'adrotate'); ?></h3>
|
74 |
<p><em><?php _e('Only required if your group is in Dynamic or Block mode.', 'adrotate'); ?></em></p>
|
188 |
</tr>
|
189 |
</tbody>
|
190 |
</table>
|
191 |
+
<center><?php _e('Set up mobile support and use Geo Targeting in AdRotate Pro', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
192 |
|
193 |
<div id="dashboard-widgets-wrap">
|
194 |
<div id="dashboard-widgets" class="metabox-holder">
|
dashboard/publisher/groups-main.php
CHANGED
@@ -67,7 +67,7 @@
|
|
67 |
<tr class='<?php echo $class; ?>'>
|
68 |
<th class="check-column"><input type="checkbox" name="groupcheck[]" value="<?php echo $group->id; ?>" /></th>
|
69 |
<td><center><?php echo $group->id;?></center></td>
|
70 |
-
<td><strong><a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-groups&view=edit&group='.$group->id);?>" title="<?php _e('Edit', 'adrotate'); ?>"><?php echo $group->name;?></a></strong> <?php if($adrotate_config['stats'] == 1) { ?>- <a href="<?php echo admin_url('/admin.php?page=adrotate-
|
71 |
<td><center><?php echo $ads_in_group; ?></center></td>
|
72 |
<?php if($adrotate_config['stats'] == 1) { ?>
|
73 |
<td><center><?php echo $stats['impressions']; ?></center></td>
|
@@ -86,5 +86,5 @@
|
|
86 |
<?php } ?>
|
87 |
</tbody>
|
88 |
</table>
|
89 |
-
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('
|
90 |
</form>
|
67 |
<tr class='<?php echo $class; ?>'>
|
68 |
<th class="check-column"><input type="checkbox" name="groupcheck[]" value="<?php echo $group->id; ?>" /></th>
|
69 |
<td><center><?php echo $group->id;?></center></td>
|
70 |
+
<td><strong><a class="row-title" href="<?php echo admin_url('/admin.php?page=adrotate-groups&view=edit&group='.$group->id);?>" title="<?php _e('Edit', 'adrotate'); ?>"><?php echo $group->name;?></a></strong> <?php if($adrotate_config['stats'] == 1) { ?>- <a href="<?php echo admin_url('/admin.php?page=adrotate-statistics&view=group&id='.$group->id);?>" title="<?php _e('Stats', 'adrotate'); ?>"><?php _e('Stats', 'adrotate'); ?></a><?php } ?><span style="color:#999;"><?php echo '<br /><span style="font-weight:bold;">'.__('Mode', 'adrotate').':</span> '.implode(', ', $modus); ?></span></td>
|
71 |
<td><center><?php echo $ads_in_group; ?></center></td>
|
72 |
<?php if($adrotate_config['stats'] == 1) { ?>
|
73 |
<td><center><?php echo $stats['impressions']; ?></center></td>
|
86 |
<?php } ?>
|
87 |
</tbody>
|
88 |
</table>
|
89 |
+
<center><?php _e('Get more features with AdRotate Pro.', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!</center>
|
90 |
</form>
|
dashboard/publisher/groups-report.php
DELETED
@@ -1,65 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/* ------------------------------------------------------------------------------------
|
3 |
-
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
-
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
-
* ADROTATE is a trademark of Arnan de Gans.
|
6 |
-
|
7 |
-
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
-
* By using this code you agree to indemnify Arnan de Gans from any
|
9 |
-
* liability that might arise from it's use.
|
10 |
-
------------------------------------------------------------------------------------ */
|
11 |
-
|
12 |
-
$title = $wpdb->get_var("SELECT `name` FROM `".$wpdb->prefix."adrotate_groups` WHERE `id` = '$group_edit_id';");
|
13 |
-
$stats = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `".$wpdb->prefix."adrotate_stats` WHERE `group` = '$group_edit_id';", ARRAY_A);
|
14 |
-
$stats_today = $wpdb->get_row("SELECT `clicks`, `impressions` FROM `".$wpdb->prefix."adrotate_stats` WHERE `group` = '$group_edit_id' AND `thetime` = '$today';", ARRAY_A);
|
15 |
-
|
16 |
-
$stats_graph_month = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `group` = {$group_edit_id} AND `thetime` >= {$monthstart} AND `thetime` <= {$monthend};", ARRAY_A);
|
17 |
-
|
18 |
-
// Get Click Through Rate
|
19 |
-
$ctr = adrotate_ctr($stats['clicks'], $stats['impressions']);
|
20 |
-
$ctr_graph_month = adrotate_ctr($stats_graph_month['clicks'], $stats_graph_month['impressions']);
|
21 |
-
|
22 |
-
// Prevent gaps in display
|
23 |
-
if(empty($stats['impressions'])) $stats['impressions'] = 0;
|
24 |
-
if(empty($stats['clicks'])) $stats['clicks'] = 0;
|
25 |
-
if(empty($stats_today['impressions'])) $stats_today['impressions'] = 0;
|
26 |
-
if(empty($stats_today['clicks'])) $stats_today['clicks'] = 0;
|
27 |
-
if(empty($stats_graph_month['impressions'])) $stats_graph_month['impressions'] = 0;
|
28 |
-
if(empty($stats_graph_month['clicks'])) $stats_graph_month['clicks'] = 0;
|
29 |
-
?>
|
30 |
-
|
31 |
-
<h3><?php _e('Statistics for group', 'adrotate'); ?> '<?php echo $title; ?>'</h3>
|
32 |
-
<table class="widefat" style="margin-top: .5em">
|
33 |
-
|
34 |
-
<tbody>
|
35 |
-
<tr>
|
36 |
-
<td width="20%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['impressions']; ?></div></div></td>
|
37 |
-
<td width="20%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['clicks']; ?></div></div></td>
|
38 |
-
<td width="20%"><div class="stats_large"><?php _e('Impressions today', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_today['impressions']; ?></div></div></td>
|
39 |
-
<td width="20%"><div class="stats_large"><?php _e('Clicks today', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_today['clicks']; ?></div></div></td>
|
40 |
-
<td width="20%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr.' %'; ?></div></div></td>
|
41 |
-
</tr>
|
42 |
-
</tbody>
|
43 |
-
|
44 |
-
</table>
|
45 |
-
|
46 |
-
<h3><?php _e('Monthly overview of clicks and impressions', 'adrotate'); ?></h3>
|
47 |
-
<table class="widefat" style="margin-top: .5em">
|
48 |
-
|
49 |
-
<tbody>
|
50 |
-
<tr>
|
51 |
-
<th colspan="5">
|
52 |
-
<div style="text-align:center;"><?php echo adrotate_stats_nav('groups', $group_edit_id, $month, $year); ?></div>
|
53 |
-
<?php echo adrotate_stats_graph('groups', $group_edit_id, 1, $monthstart, $monthend); ?>
|
54 |
-
</th>
|
55 |
-
</tr>
|
56 |
-
<tr>
|
57 |
-
<td width="33%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_graph_month['impressions']; ?></div></div></td>
|
58 |
-
<td width="33%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_graph_month['clicks']; ?></div></div></td>
|
59 |
-
<td width="34%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_graph_month; ?> %</div></div></td>
|
60 |
-
</tr>
|
61 |
-
</tbody>
|
62 |
-
|
63 |
-
</table>
|
64 |
-
|
65 |
-
<p><em><strong><?php _e('Note:', 'adrotate'); ?></strong> <?php _e('All statistics are indicative. They do not nessesarily reflect results counted by other parties.', 'adrotate'); ?></em></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dashboard/publisher/media.php
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* ------------------------------------------------------------------------------------
|
3 |
+
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
+
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
+
* ADROTATE is a registered trademark of Arnan de Gans.
|
6 |
+
|
7 |
+
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
+
* By using this code you agree to indemnify Arnan de Gans from any
|
9 |
+
* liability that might arise from it's use.
|
10 |
+
------------------------------------------------------------------------------------ */
|
11 |
+
?>
|
12 |
+
|
13 |
+
<form method="post" action="admin.php?page=adrotate-media" enctype="multipart/form-data">
|
14 |
+
<?php wp_nonce_field('adrotate_save_media','adrotate_nonce'); ?>
|
15 |
+
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
|
16 |
+
|
17 |
+
<h2><?php _e('Upload new file', 'adrotate'); ?></h2>
|
18 |
+
<label for="adrotate_image"><input tabindex="1" type="file" name="adrotate_image" disabled="1" /><br /><em><strong><?php _e('Accepted files:', 'adrotate'); ?></strong> jpg, jpeg, gif, png, html, js, swf and flv. <?php _e('Maximum size is 512Kb per file.', 'adrotate'); ?></em><br /><em><strong><?php _e('Important:', 'adrotate'); ?></strong> <?php _e('Make sure your file has no spaces or special characters in the name. Replace spaces with a - or _.', 'adrotate'); ?><br /><?php _e('If you remove spaces from filenames for HTML5 adverts also edit the html file so it knows about the changed name. For example for the javascript file.', 'adrotate'); ?></em></label>
|
19 |
+
|
20 |
+
<p class="submit">
|
21 |
+
<input tabindex="2" type="submit" name="adrotate_media_submit" class="button-primary" value="<?php _e('Upload file', 'adrotate'); ?>" disabled="1" /> <em><?php _e('Click only once per file!', 'adrotate'); ?></em>
|
22 |
+
</p>
|
23 |
+
</form>
|
24 |
+
|
25 |
+
<h2><?php _e('Available files in', 'adrotate'); ?> '<?php echo '/'.$adrotate_config['banner_folder']; ?>'</h2>
|
26 |
+
<table class="widefat" style="margin-top: .5em">
|
27 |
+
|
28 |
+
<thead>
|
29 |
+
<tr>
|
30 |
+
<th><?php _e('Name', 'adrotate'); ?></th>
|
31 |
+
<th width="12%"><center><?php _e('Actions', 'adrotate'); ?></center></th>
|
32 |
+
</tr>
|
33 |
+
</thead>
|
34 |
+
|
35 |
+
<tbody>
|
36 |
+
<?php
|
37 |
+
$assets = adrotate_subfolder_contents(WP_CONTENT_DIR."/".$adrotate_config['banner_folder']);
|
38 |
+
|
39 |
+
if(count($assets) > 0) {
|
40 |
+
$class = '';
|
41 |
+
foreach($assets as $asset) {
|
42 |
+
$class = ($class != 'alternate') ? 'alternate' : '';
|
43 |
+
|
44 |
+
echo "<tr class=\"$class\">";
|
45 |
+
echo "<td>";
|
46 |
+
echo $asset['basename'];
|
47 |
+
if(array_key_exists("contents", $asset) AND !array_key_exists("no_files", $asset['contents']) AND !array_key_exists("no_access", $asset['contents'])) {
|
48 |
+
echo "<small>";
|
49 |
+
foreach($asset['contents'] as $level_one) {
|
50 |
+
echo "<br />— ".$level_one['basename'];
|
51 |
+
if(array_key_exists("contents", $level_one)) {
|
52 |
+
foreach($level_one['contents'] as $level_two) {
|
53 |
+
echo "<br />—— ".$level_two['basename'];
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
echo "</small>";
|
58 |
+
}
|
59 |
+
echo "</td>";
|
60 |
+
echo "<td><center><strong>".__('Delete', 'adrotate')."</strong></center></td>";
|
61 |
+
echo "</tr>";
|
62 |
+
}
|
63 |
+
} else {
|
64 |
+
echo "<tr class=\"alternate\">";
|
65 |
+
echo "<td colspan=\"2\"><em>".__('No files found!', 'adrotate')."</em></td>";
|
66 |
+
echo "</tr>";
|
67 |
+
}
|
68 |
+
?>
|
69 |
+
</tbody>
|
70 |
+
</table>
|
71 |
+
<p><center>
|
72 |
+
<?php _e("Make sure the banner images are not in use by adverts when you delete them!", "adrotate"); ?><br />
|
73 |
+
<?php _e('Get more features with AdRotate Pro', 'adrotate'); ?> - <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!
|
74 |
+
</center></p>
|
dashboard/publisher/schedules-main.php
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* ------------------------------------------------------------------------------------
|
3 |
+
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
+
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
+
* ADROTATE is a registered trademark of Arnan de Gans.
|
6 |
+
|
7 |
+
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
+
* By using this code you agree to indemnify Arnan de Gans from any
|
9 |
+
* liability that might arise from it's use.
|
10 |
+
------------------------------------------------------------------------------------ */
|
11 |
+
?>
|
12 |
+
<h2><?php _e('Manage Schedules', 'adrotate'); ?></h2>
|
13 |
+
<p><?php _e('In AdRotate Pro you can schedule adverts for multiple periods of time. One schedule can be assigned to many adverts allowing you to manage multi advert campaigns easily. Schedules can be active on certain days of the week or on certain hours of the day.', 'adrotate'); ?> <?php _e('Get more features', 'adrotate'); ?> - <a href="admin.php?page=adrotate-pro"><?php _e('Get AdRotate Pro', 'adrotate'); ?></a>!</p>
|
14 |
+
|
15 |
+
<form name="banners" id="post" method="post" action="admin.php?page=adrotate-schedules">
|
16 |
+
<?php wp_nonce_field('adrotate_bulk_schedules','adrotate_nonce'); ?>
|
17 |
+
|
18 |
+
<div class="tablenav top">
|
19 |
+
<div class="alignleft actions">
|
20 |
+
<select name="adrotate_action" id="cat" class="postform" disabled="1">
|
21 |
+
<option value=""><?php _e('Bulk Actions', 'adrotate'); ?></option>
|
22 |
+
</select> <input type="submit" id="post-action-submit" name="adrotate_action_submit" value="<?php _e('Go', 'adrotate'); ?>" class="button-secondary" disabled="1" />
|
23 |
+
</div>
|
24 |
+
<br class="clear" />
|
25 |
+
</div>
|
26 |
+
|
27 |
+
<table class="widefat tablesorter manage-schedules-main" style="margin-top: .5em">
|
28 |
+
<thead>
|
29 |
+
<tr>
|
30 |
+
<td scope="col" class="manage-column column-cb check-column"><input type="checkbox" disabled="1" /></td>
|
31 |
+
<th width="4%"><center><?php _e('ID', 'adrotate'); ?></center></th>
|
32 |
+
<th width="20%"><?php _e('Start / End', 'adrotate'); ?></th>
|
33 |
+
<th><?php _e('Name', 'adrotate'); ?></th>
|
34 |
+
<th width="4%"><center><?php _e('Adverts', 'adrotate'); ?></center></th>
|
35 |
+
<?php if($adrotate_config['stats'] == 1) { ?>
|
36 |
+
<th width="10%"><center><?php _e('Max Shown', 'adrotate'); ?></center></th>
|
37 |
+
<th width="10%"><center><?php _e('Max Clicks', 'adrotate'); ?></center></th>
|
38 |
+
<?php } ?>
|
39 |
+
</tr>
|
40 |
+
</thead>
|
41 |
+
<tbody>
|
42 |
+
<?php
|
43 |
+
$schedules = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}adrotate_schedule` WHERE `name` != '' ORDER BY `id` ASC;");
|
44 |
+
if($schedules) {
|
45 |
+
$tick = '<img src="'.plugins_url('../../images/tick.png', __FILE__).'" width="10" height"10" />';
|
46 |
+
$cross = '<img src="'.plugins_url('../../images/cross.png', __FILE__).'" width="10" height"10" />';
|
47 |
+
|
48 |
+
$class = '';
|
49 |
+
foreach($schedules as $schedule) {
|
50 |
+
$ads_use_schedule = $wpdb->get_results("SELECT `ad` FROM `{$wpdb->prefix}adrotate_linkmeta`, `{$wpdb->prefix}adrotate` WHERE `group` = 0 AND `user` = 0 AND `schedule` = ".$schedule->id." AND `ad` = `{$wpdb->prefix}adrotate`.`id`;");
|
51 |
+
|
52 |
+
if($adrotate_config['stats'] == 1) {
|
53 |
+
if($schedule->maxclicks == 0) $schedule->maxclicks = '∞';
|
54 |
+
if($schedule->maximpressions == 0) $schedule->maximpressions = '∞';
|
55 |
+
}
|
56 |
+
|
57 |
+
($class != 'alternate') ? $class = 'alternate' : $class = '';
|
58 |
+
if($schedule->stoptime < $in2days) $class = 'row_orange';
|
59 |
+
if($schedule->stoptime < $now) $class = 'row_red';
|
60 |
+
|
61 |
+
$sdayhour = substr($schedule->daystarttime, 0, 2);
|
62 |
+
$sdayminute = substr($schedule->daystarttime, 2, 2);
|
63 |
+
$edayhour = substr($schedule->daystoptime, 0, 2);
|
64 |
+
$edayminute = substr($schedule->daystoptime, 2, 2);
|
65 |
+
?>
|
66 |
+
<tr id='adrotateindex' class='<?php echo $class; ?>'>
|
67 |
+
<th class="check-column"><input type="checkbox" name="schedulecheck[]" value="<?php echo $schedule->id; ?>" disabled="1" /></th>
|
68 |
+
<td><center><?php echo $schedule->id;?></center></td>
|
69 |
+
<td><?php echo date_i18n("F d, Y H:i", $schedule->starttime);?><br /><span style="color: <?php echo adrotate_prepare_color($schedule->stoptime);?>;"><?php echo date_i18n("F d, Y H:i", $schedule->stoptime);?></span></td>
|
70 |
+
<td><?php echo stripslashes(html_entity_decode($schedule->name)); ?><span style="color:#999;"><br /><?php _e('Mon:', 'adrotate'); ?> <?php echo ($schedule->day_mon == 'Y') ? $tick : $cross; ?> <?php _e('Tue:', 'adrotate'); ?> <?php echo ($schedule->day_tue == 'Y') ? $tick : $cross; ?> <?php _e('Wed:', 'adrotate'); ?> <?php echo ($schedule->day_wed == 'Y') ? $tick : $cross; ?> <?php _e('Thu:', 'adrotate'); ?> <?php echo ($schedule->day_thu == 'Y') ? $tick : $cross; ?> <?php _e('Fri:', 'adrotate'); ?> <?php echo ($schedule->day_fri == 'Y') ? $tick : $cross; ?> <?php _e('Sat:', 'adrotate'); ?> <?php echo ($schedule->day_sat == 'Y') ? $tick : $cross; ?> <?php _e('Sun:', 'adrotate'); ?> <?php echo ($schedule->day_sun == 'Y') ? $tick : $cross; ?> <?php if($schedule->daystarttime > 0) { ?><?php _e('Between:', 'adrotate'); ?> <?php echo $sdayhour; ?>:<?php echo $sdayminute; ?> - <?php echo $edayhour; ?>:<?php echo $edayminute; ?> <?php } ?><br /><?php _e('Impression spread:', 'adrotate'); ?> <?php echo ($schedule->spread == 'Y') ? $tick : $cross; ?>, <?php _e('Auto Delete:', 'adrotate'); ?> <?php echo ($schedule->autodelete == 'Y') ? $tick : $cross; ?></span></td>
|
71 |
+
<td><center><?php echo count($ads_use_schedule); ?></center></td>
|
72 |
+
<?php if($adrotate_config['stats'] == 1) { ?>
|
73 |
+
<td><center><?php echo $schedule->maximpressions; ?></center></td>
|
74 |
+
<td><center><?php echo $schedule->maxclicks; ?></center></td>
|
75 |
+
<?php } ?>
|
76 |
+
</tr>
|
77 |
+
<?php } ?>
|
78 |
+
<?php } else { ?>
|
79 |
+
<tr id='no-schedules'>
|
80 |
+
<th class="check-column"> </th>
|
81 |
+
<td colspan="<?php echo ($adrotate_config['stats'] == 1) ? '7' : '5'; ?>"><em><?php _e('Nothing here!', 'adrotate'); ?></em></td>
|
82 |
+
</tr>
|
83 |
+
<?php } ?>
|
84 |
+
</tbody>
|
85 |
+
</table>
|
86 |
+
<p><center>
|
87 |
+
<span style="border: 1px solid #c80; height: 12px; width: 12px; background-color: #fdefc3"> </span> <?php _e("Expires soon.", "adrotate"); ?>
|
88 |
+
<span style="border: 1px solid #c00; height: 12px; width: 12px; background-color: #ffebe8"> </span> <?php _e("Has expired.", "adrotate"); ?><br />
|
89 |
+
<?php _e('Get more features with AdRotate Pro', 'adrotate'); ?> - <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!
|
90 |
+
|
91 |
+
</center></p>
|
92 |
+
</form>
|
dashboard/publisher/statistics-advert.php
ADDED
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* ------------------------------------------------------------------------------------
|
3 |
+
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
+
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
+
* ADROTATE is a registered trademark of Arnan de Gans.
|
6 |
+
|
7 |
+
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
+
* By using this code you agree to indemnify Arnan de Gans from any
|
9 |
+
* liability that might arise from it's use.
|
10 |
+
------------------------------------------------------------------------------------ */
|
11 |
+
|
12 |
+
$banner = $wpdb->get_row("SELECT `title`, `tracker`, `type` FROM `{$wpdb->prefix}adrotate` WHERE `id` = '{$id}';");
|
13 |
+
$schedules = $wpdb->get_results("SELECT `{$wpdb->prefix}adrotate_schedule`.`id`, `starttime`, `stoptime`, `maxclicks`, `maximpressions`, COUNT(`clicks`) as `clicks`, COUNT(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_schedule`, `{$wpdb->prefix}adrotate_linkmeta`, `{$wpdb->prefix}adrotate_stats` WHERE `{$wpdb->prefix}adrotate_linkmeta`.`ad` = '{$id}' AND `{$wpdb->prefix}adrotate_linkmeta`.`ad` = `{$wpdb->prefix}adrotate_stats`.`ad` AND `schedule` = `{$wpdb->prefix}adrotate_schedule`.`id` AND `thetime` > `starttime` AND `thetime` < `stoptime` ORDER BY `{$wpdb->prefix}adrotate_schedule`.`id` ASC;");
|
14 |
+
|
15 |
+
$stats = adrotate_stats($id, false);
|
16 |
+
$stats_today = adrotate_stats($id, false, adrotate_date_start('day'), null, 1);
|
17 |
+
$stats_last_month = adrotate_stats($id, false, mktime(0, 0, 0, date("m")-1, 1, date("Y")), mktime(0, 0, 0, date("m"), 0, date("Y")));
|
18 |
+
$stats_this_month = adrotate_stats($id, false, mktime(0, 0, 0, date("m"), 1, date("Y")), mktime(0, 0, 0, date("m"), date("t"), date("Y")));
|
19 |
+
$stats_graph_month = adrotate_stats($id, false, $monthstart, $monthend);
|
20 |
+
|
21 |
+
// Prevent gaps in display
|
22 |
+
if(empty($stats['impressions'])) $stats['impressions'] = 0;
|
23 |
+
if(empty($stats['clicks'])) $stats['clicks'] = 0;
|
24 |
+
if(empty($stats_today['impressions'])) $stats_today['impressions'] = 0;
|
25 |
+
if(empty($stats_today['clicks'])) $stats_today['clicks'] = 0;
|
26 |
+
if(empty($stats_last_month['impressions'])) $stats_last_month['impressions'] = 0;
|
27 |
+
if(empty($stats_last_month['clicks'])) $stats_last_month['clicks'] = 0;
|
28 |
+
if(empty($stats_this_month['impressions'])) $stats_this_month['impressions'] = 0;
|
29 |
+
if(empty($stats_this_month['clicks'])) $stats_this_month['clicks'] = 0;
|
30 |
+
if(empty($stats_graph_month['impressions'])) $stats_graph_month['impressions'] = 0;
|
31 |
+
if(empty($stats_graph_month['clicks'])) $stats_graph_month['clicks'] = 0;
|
32 |
+
|
33 |
+
// Get Click Through Rate
|
34 |
+
$ctr = adrotate_ctr($stats['clicks'], $stats['impressions']);
|
35 |
+
$ctr_today = adrotate_ctr($stats_today['clicks'], $stats_today['impressions']);
|
36 |
+
$ctr_last_month = adrotate_ctr($stats_last_month['clicks'], $stats_last_month['impressions']);
|
37 |
+
$ctr_this_month = adrotate_ctr($stats_this_month['clicks'], $stats_this_month['impressions']);
|
38 |
+
$ctr_graph_month = adrotate_ctr($stats_graph_month['clicks'], $stats_graph_month['impressions']);
|
39 |
+
?>
|
40 |
+
<h2><?php _e('Statistics for advert', 'adrotate'); ?> '<?php echo stripslashes($banner->title); ?>'</h2>
|
41 |
+
<table class="widefat" style="margin-top: .5em">
|
42 |
+
|
43 |
+
<thead>
|
44 |
+
<tr>
|
45 |
+
<th colspan="3"><center><strong><?php _e('Today', 'adrotate'); ?></strong></center></th>
|
46 |
+
<th> </th>
|
47 |
+
<th colspan="3"><center><strong><?php _e('All time', 'adrotate'); ?></strong></center></th>
|
48 |
+
</tr>
|
49 |
+
</thead>
|
50 |
+
<tbody>
|
51 |
+
<tr>
|
52 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_today['impressions']; ?></div></div></td>
|
53 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_today['clicks']; ?></div></div></td>
|
54 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_today.' %'; ?></div></div></td>
|
55 |
+
|
56 |
+
<td> </td>
|
57 |
+
|
58 |
+
<td><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['impressions']; ?></div></div></td>
|
59 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['clicks']; ?></div></div></td>
|
60 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr.' %'; ?></div></div></td>
|
61 |
+
</tr>
|
62 |
+
</tbody>
|
63 |
+
<thead>
|
64 |
+
<tr>
|
65 |
+
<th colspan="3"><center><strong><?php _e('Last month', 'adrotate'); ?></strong></center></th>
|
66 |
+
<th> </th>
|
67 |
+
<th colspan="3"><center><strong><?php _e('This month', 'adrotate'); ?></strong></center></th>
|
68 |
+
</tr>
|
69 |
+
</thead>
|
70 |
+
<tbody>
|
71 |
+
<tr>
|
72 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_last_month['impressions']; ?></div></div></td>
|
73 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_last_month['clicks']; ?></div></div></td>
|
74 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_last_month.' %'; ?></div></div></td>
|
75 |
+
|
76 |
+
<td> </td>
|
77 |
+
|
78 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_this_month['impressions']; ?></div></div></td>
|
79 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_this_month['clicks']; ?></div></div></td>
|
80 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_this_month.' %'; ?></div></div></td>
|
81 |
+
</tr>
|
82 |
+
<tbody>
|
83 |
+
|
84 |
+
</table>
|
85 |
+
|
86 |
+
<h2><?php _e('Monthly overview of clicks and impressions', 'adrotate'); ?></h2>
|
87 |
+
<form method="post" action="admin.php?page=adrotate-statistics&view=advert&id=<?php echo $id; ?>">
|
88 |
+
<table class="widefat" style="margin-top: .5em">
|
89 |
+
<tbody>
|
90 |
+
<tr>
|
91 |
+
<th colspan="3">
|
92 |
+
<div style="text-align:center;"><?php echo adrotate_stats_nav('ads', $id, $month, $year); ?></div>
|
93 |
+
<?php
|
94 |
+
echo adrotate_stats_graph('ads', false, $id, 1, $monthstart, $monthend);
|
95 |
+
?>
|
96 |
+
</th>
|
97 |
+
</tr>
|
98 |
+
<tr>
|
99 |
+
<td width="33%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_graph_month['impressions']; ?></div></div></td>
|
100 |
+
<td width="33%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php if($banner->tracker == "Y") { echo $stats_graph_month['clicks']; } else { echo '--'; } ?></div></div></td>
|
101 |
+
<td width="34%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php if($banner->tracker == "Y") { echo $ctr_graph_month.' %'; } else { echo '--'; } ?></div></div></td>
|
102 |
+
</tr>
|
103 |
+
</tbody>
|
104 |
+
|
105 |
+
</table>
|
106 |
+
</form>
|
107 |
+
|
108 |
+
<h2><?php _e('Periodic overview of clicks and impressions', 'adrotate'); ?></h2>
|
109 |
+
<table class="widefat" style="margin-top: .5em">
|
110 |
+
<thead>
|
111 |
+
<tr>
|
112 |
+
<th><?php _e('Shown from', 'adrotate'); ?></th>
|
113 |
+
<th><?php _e('Shown until', 'adrotate'); ?></th>
|
114 |
+
<th><center><?php _e('Max Clicks', 'adrotate'); ?> / <?php _e('Used', 'adrotate'); ?></center></th>
|
115 |
+
<th><center><?php _e('Max Impressions', 'adrotate'); ?> / <?php _e('Used', 'adrotate'); ?></center></th>
|
116 |
+
</tr>
|
117 |
+
</thead>
|
118 |
+
|
119 |
+
<tbody>
|
120 |
+
<?php
|
121 |
+
foreach($schedules as $schedule) {
|
122 |
+
$stats_schedule = adrotate_stats($id, false, $schedule->starttime, $schedule->stoptime);
|
123 |
+
if($schedule->maxclicks == 0) $schedule->maxclicks = '∞';
|
124 |
+
if($schedule->maximpressions == 0) $schedule->maximpressions = '∞';
|
125 |
+
?>
|
126 |
+
<tr id='schedule-<?php echo $schedule->id; ?>'>
|
127 |
+
<td><?php echo date_i18n("F d, Y - H:i", $schedule->starttime);?></td>
|
128 |
+
<td><?php echo date_i18n("F d, Y - H:i", $schedule->stoptime);?></td>
|
129 |
+
<td><center><?php echo $schedule->maxclicks; ?> / <?php echo $stats_schedule['clicks']; ?></center></td>
|
130 |
+
<td><center><?php echo $schedule->maximpressions; ?> / <?php echo $stats_schedule['impressions']; ?></center></td>
|
131 |
+
</tr>
|
132 |
+
<?php
|
133 |
+
unset($stats_schedule);
|
134 |
+
}
|
135 |
+
?>
|
136 |
+
</tbody>
|
137 |
+
</table>
|
138 |
+
|
139 |
+
<p><center>
|
140 |
+
<?php _e('Get more features with AdRotate Pro', 'adrotate'); ?> - <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!<br />
|
141 |
+
<em><small><strong><?php _e('Note:', 'adrotate'); ?></strong> <?php _e('All statistics are indicative. They do not nessesarily reflect results counted by other parties.', 'adrotate'); ?></small></em>
|
142 |
+
</center></p>
|
dashboard/publisher/statistics-group.php
ADDED
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* ------------------------------------------------------------------------------------
|
3 |
+
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
+
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
+
* ADROTATE is a registered trademark of Arnan de Gans.
|
6 |
+
|
7 |
+
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
+
* By using this code you agree to indemnify Arnan de Gans from any
|
9 |
+
* liability that might arise from it's use.
|
10 |
+
------------------------------------------------------------------------------------ */
|
11 |
+
|
12 |
+
$title = $wpdb->get_var("SELECT `name` FROM `{$wpdb->prefix}adrotate_groups` WHERE `id` = {$id};");
|
13 |
+
$stats = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `group` = {$id};", ARRAY_A);
|
14 |
+
$stats_today = $wpdb->get_row("SELECT `clicks`, `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `group` = {$id} AND `thetime` = {$today};", ARRAY_A);
|
15 |
+
|
16 |
+
$start_last_month = mktime(0, 0, 0, date("m")-1, 1, date("Y"));
|
17 |
+
$end_last_month = mktime(0, 0, 0, date("m")-1, date("t"), date("Y"));
|
18 |
+
$stats_last_month = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `group` = {$id} AND `thetime` >= {$start_last_month} AND `thetime` <= {$end_last_month};", ARRAY_A);
|
19 |
+
|
20 |
+
$start_this_month = mktime(0, 0, 0, date("m"), 1, date("Y"));
|
21 |
+
$end_this_month = mktime(0, 0, 0, date("m"), date("t"), date("Y"));
|
22 |
+
$stats_this_month = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `group` = {$id} AND `thetime` >= {$start_this_month} AND `thetime` <= {$end_this_month};", ARRAY_A);
|
23 |
+
|
24 |
+
$stats_graph_month = $wpdb->get_row("SELECT SUM(`clicks`) as `clicks`, SUM(`impressions`) as `impressions` FROM `{$wpdb->prefix}adrotate_stats` WHERE `group` = {$id} AND `thetime` >= {$monthstart} AND `thetime` <= {$monthend};", ARRAY_A);
|
25 |
+
|
26 |
+
// Prevent gaps in display
|
27 |
+
if(empty($stats['impressions'])) $stats['impressions'] = 0;
|
28 |
+
if(empty($stats['clicks'])) $stats['clicks'] = 0;
|
29 |
+
if(empty($stats_today['impressions'])) $stats_today['impressions'] = 0;
|
30 |
+
if(empty($stats_today['clicks'])) $stats_today['clicks'] = 0;
|
31 |
+
if(empty($stats_last_month['impressions'])) $stats_last_month['impressions'] = 0;
|
32 |
+
if(empty($stats_last_month['clicks'])) $stats_last_month['clicks'] = 0;
|
33 |
+
if(empty($stats_this_month['impressions'])) $stats_this_month['impressions'] = 0;
|
34 |
+
if(empty($stats_this_month['clicks'])) $stats_this_month['clicks'] = 0;
|
35 |
+
if(empty($stats_graph_month['impressions'])) $stats_graph_month['impressions'] = 0;
|
36 |
+
if(empty($stats_graph_month['clicks'])) $stats_graph_month['clicks'] = 0;
|
37 |
+
|
38 |
+
// Get Click Through Rate
|
39 |
+
$ctr = adrotate_ctr($stats['clicks'], $stats['impressions']);
|
40 |
+
$ctr_today = adrotate_ctr($stats_today['clicks'], $stats_today['impressions']);
|
41 |
+
$ctr_last_month = adrotate_ctr($stats_last_month['clicks'], $stats_last_month['impressions']);
|
42 |
+
$ctr_this_month = adrotate_ctr($stats_this_month['clicks'], $stats_this_month['impressions']);
|
43 |
+
$ctr_graph_month = adrotate_ctr($stats_graph_month['clicks'], $stats_graph_month['impressions']);
|
44 |
+
?>
|
45 |
+
|
46 |
+
<h2><?php _e('Statistics for group', 'adrotate'); ?> '<?php echo stripslashes($title); ?>'</h2>
|
47 |
+
<table class="widefat" style="margin-top: .5em">
|
48 |
+
|
49 |
+
<thead>
|
50 |
+
<tr>
|
51 |
+
<th colspan="3"><center><strong><?php _e('Today', 'adrotate'); ?></strong></center></th>
|
52 |
+
<th> </th>
|
53 |
+
<th colspan="3"><center><strong><?php _e('All time', 'adrotate'); ?></strong></center></th>
|
54 |
+
</tr>
|
55 |
+
</thead>
|
56 |
+
<tbody>
|
57 |
+
<tr>
|
58 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_today['impressions']; ?></div></div></td>
|
59 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_today['clicks']; ?></div></div></td>
|
60 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_today.' %'; ?></div></div></td>
|
61 |
+
|
62 |
+
<td> </td>
|
63 |
+
|
64 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['impressions']; ?></div></div></td>
|
65 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['clicks']; ?></div></div></td>
|
66 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr.' %'; ?></div></div></td>
|
67 |
+
</tr>
|
68 |
+
</tbody>
|
69 |
+
<thead>
|
70 |
+
<tr>
|
71 |
+
<th colspan="3"><center><strong><?php _e('Last month', 'adrotate'); ?></strong></center></th>
|
72 |
+
<th> </th>
|
73 |
+
<th colspan="3"><center><strong><?php _e('This month', 'adrotate'); ?></strong></center></th>
|
74 |
+
</tr>
|
75 |
+
</thead>
|
76 |
+
<tbody>
|
77 |
+
<tr>
|
78 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_last_month['impressions']; ?></div></div></td>
|
79 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_last_month['clicks']; ?></div></div></td>
|
80 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_last_month.' %'; ?></div></div></td>
|
81 |
+
|
82 |
+
<td> </td>
|
83 |
+
|
84 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_this_month['impressions']; ?></div></div></td>
|
85 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_this_month['clicks']; ?></div></div></td>
|
86 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_this_month.' %'; ?></div></div></td>
|
87 |
+
</tr>
|
88 |
+
<tbody>
|
89 |
+
|
90 |
+
</table>
|
91 |
+
|
92 |
+
<h2><?php _e('Monthly overview of clicks and impressions', 'adrotate'); ?></h2>
|
93 |
+
<table class="widefat" style="margin-top: .5em">
|
94 |
+
|
95 |
+
<tbody>
|
96 |
+
<tr>
|
97 |
+
<th colspan="3">
|
98 |
+
<div style="text-align:center;"><?php echo adrotate_stats_nav('groups', $id, $month, $year); ?></div>
|
99 |
+
<?php echo adrotate_stats_graph('groups', false, $id, 1, $monthstart, $monthend); ?>
|
100 |
+
</th>
|
101 |
+
</tr>
|
102 |
+
<tr>
|
103 |
+
<td width="33%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_graph_month['impressions']; ?></div></div></td>
|
104 |
+
<td width="33%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats_graph_month['clicks']; ?></div></div></td>
|
105 |
+
<td width="34%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_graph_month; ?> %</div></div></td>
|
106 |
+
</tr>
|
107 |
+
</tbody>
|
108 |
+
|
109 |
+
</table>
|
110 |
+
|
111 |
+
<p><center>
|
112 |
+
<?php _e('Get more features with AdRotate Pro', 'adrotate'); ?> - <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!<br />
|
113 |
+
<em><small><strong><?php _e('Note:', 'adrotate'); ?></strong> <?php _e('All statistics are indicative. They do not nessesarily reflect results counted by other parties.', 'adrotate'); ?></small></em>
|
114 |
+
</center></p>
|
dashboard/publisher/statistics-main.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* ------------------------------------------------------------------------------------
|
3 |
+
* COPYRIGHT AND TRADEMARK NOTICE
|
4 |
+
* Copyright 2008-2017 Arnan de Gans. All Rights Reserved.
|
5 |
+
* ADROTATE is a registered trademark of Arnan de Gans.
|
6 |
+
|
7 |
+
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
|
8 |
+
* By using this code you agree to indemnify Arnan de Gans from any
|
9 |
+
* liability that might arise from it's use.
|
10 |
+
------------------------------------------------------------------------------------ */
|
11 |
+
?>
|
12 |
+
<h2><?php _e('Statistics', 'adrotate'); ?></h2>
|
13 |
+
|
14 |
+
<table class="widefat" style="margin-top: .5em">
|
15 |
+
<thead>
|
16 |
+
<tr>
|
17 |
+
<th colspan="3"><center><strong><?php _e('General', 'adrotate'); ?></strong></center></th>
|
18 |
+
<th> </th>
|
19 |
+
<th colspan="3"><center><strong><?php _e('All time', 'adrotate'); ?></strong></center></th>
|
20 |
+
</tr>
|
21 |
+
</thead>
|
22 |
+
<tbody>
|
23 |
+
<tr>
|
24 |
+
<td width="16%"><div class="stats_large"><?php _e('Adverts', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['banners']; ?></div></div></td>
|
25 |
+
<td width="16%"> </td>
|
26 |
+
<td width="16%"><div class="stats_large"><?php _e('Adverts counting stats', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['tracker']; ?></div></div></td>
|
27 |
+
<td> </td>
|
28 |
+
<td width="16%"><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['overall_impressions']; ?></div></div></td>
|
29 |
+
<td width="16%"><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['overall_clicks']; ?></div></div></td>
|
30 |
+
<td width="16%"><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_alltime; ?> %</div></div></td>
|
31 |
+
</tr>
|
32 |
+
</tbody>
|
33 |
+
<thead>
|
34 |
+
<tr>
|
35 |
+
<th colspan="3"><center><strong><?php _e('Last month', 'adrotate'); ?></strong></center></th>
|
36 |
+
<th> </th>
|
37 |
+
<th colspan="3"><center><strong><?php _e('This month', 'adrotate'); ?></strong></center></th>
|
38 |
+
</tr>
|
39 |
+
</thead>
|
40 |
+
<tbody>
|
41 |
+
<tr>
|
42 |
+
<td><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['last_month_impressions']; ?></div></div></td>
|
43 |
+
<td><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['last_month_clicks']; ?></div></div></td>
|
44 |
+
<td><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_last_month.' %'; ?></div></div></td>
|
45 |
+
<td> </td>
|
46 |
+
<td><div class="stats_large"><?php _e('Impressions', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['this_month_impressions']; ?></div></div></td>
|
47 |
+
<td><div class="stats_large"><?php _e('Clicks', 'adrotate'); ?><br /><div class="number_large"><?php echo $stats['this_month_clicks']; ?></div></div></td>
|
48 |
+
<td><div class="stats_large"><?php _e('CTR', 'adrotate'); ?><br /><div class="number_large"><?php echo $ctr_this_month.' %'; ?></div></div></td>
|
49 |
+
</tr>
|
50 |
+
</tbody>
|
51 |
+
</table>
|
52 |
+
|
53 |
+
<h2><?php _e('Monthly overview of clicks and impressions', 'adrotate'); ?></h2>
|
54 |
+
<table class="widefat" style="margin-top: .5em">
|
55 |
+
|
56 |
+
<tbody>
|
57 |
+
<tr>
|
58 |
+
<th colspan="3">
|
59 |
+
<div style="text-align:center;"><?php echo adrotate_stats_nav('fullreport', 0, $month, $year); ?></div>
|
60 |
+
<?php echo adrotate_stats_graph('fullreport', false, 0, 1, $monthstart, $monthend); ?>
|
61 |
+
</th>
|
62 |
+
</tr>
|
63 |
+
<tr>
|
64 |
+
<td width="33%"><div class="stats_large"><?php _e('Impressions', 'adrotate-pro'); ?><br /><div class="number_large"><?php echo $stats_graph_month['impressions']; ?></div></div></td>
|
65 |
+
<td width="33%"><div class="stats_large"><?php _e('Clicks', 'adrotate-pro'); ?><br /><div class="number_large"><?php echo $stats_graph_month['clicks']; ?></div></div></td>
|
66 |
+
<td width="34%"><div class="stats_large"><?php _e('CTR', 'adrotate-pro'); ?><br /><div class="number_large"><?php echo $ctr_graph_month; ?> %</div></div></td>
|
67 |
+
</tr>
|
68 |
+
</tbody>
|
69 |
+
|
70 |
+
</table>
|
71 |
+
|
72 |
+
<p><center>
|
73 |
+
<?php _e('Get more features with AdRotate Pro', 'adrotate'); ?> - <a href="admin.php?page=adrotate-pro"><?php _e('Upgrade now', 'adrotate'); ?></a>!<br />
|
74 |
+
<em><small><strong><?php _e('Note:', 'adrotate'); ?></strong> <?php _e('All statistics are indicative. They do not nessesarily reflect results counted by other parties.', 'adrotate'); ?></small></em>
|
75 |
+
</center></p>
|
images/cross.png
ADDED
Binary file
|
images/tick.png
ADDED
Binary file
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.arnan.me/donate/?utm_campaign=donations&utm_medium=readm
|
|
4 |
Tags: ad, advert, adsense, advertising, doubleclick, responsive, ad rotator, ad manager, banner manager, advert manager, analytics, advertisement,
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.8
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv3
|
9 |
|
10 |
Monetise your website with adverts while keeping things simple. Start making money today!
|
@@ -98,9 +98,11 @@ You can also post your questions on the [forum](https://ajdg.solutions/forums/?u
|
|
98 |
|
99 |
Be a Professional and go Pro. With [AdRotate Professional](https://ajdg.solutions/plugins/adrotate-for-wordpress/?utm_campaign=adrotate-page&utm_medium=readme&utm_source=adrotate-free)!
|
100 |
|
101 |
-
= 4.
|
102 |
-
* [new]
|
103 |
-
* [fix]
|
|
|
|
|
104 |
|
105 |
= 4.8 PRO =
|
106 |
* [new] Advert code generator
|
@@ -112,8 +114,10 @@ All recent changes are available on the [AdRotate website](https://ajdg.solution
|
|
112 |
|
113 |
== Upgrade Notice ==
|
114 |
|
115 |
-
* [new]
|
116 |
-
* [fix]
|
|
|
|
|
117 |
|
118 |
== Screenshots ==
|
119 |
|
4 |
Tags: ad, advert, adsense, advertising, doubleclick, responsive, ad rotator, ad manager, banner manager, advert manager, analytics, advertisement,
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.8
|
7 |
+
Stable tag: 4.6
|
8 |
License: GPLv3
|
9 |
|
10 |
Monetise your website with adverts while keeping things simple. Start making money today!
|
98 |
|
99 |
Be a Professional and go Pro. With [AdRotate Professional](https://ajdg.solutions/plugins/adrotate-for-wordpress/?utm_campaign=adrotate-page&utm_medium=readme&utm_source=adrotate-free)!
|
100 |
|
101 |
+
= 4.6 FREE =
|
102 |
+
* [new] Better stats display
|
103 |
+
* [fix] Improved PHP7 compatibility
|
104 |
+
* [fix] Schedule properly removed when removing advert
|
105 |
+
* [change] Dashboard tweaks and improvements
|
106 |
|
107 |
= 4.8 PRO =
|
108 |
* [new] Advert code generator
|
114 |
|
115 |
== Upgrade Notice ==
|
116 |
|
117 |
+
* [new] Better stats display
|
118 |
+
* [fix] Improved PHP7 compatibility
|
119 |
+
* [fix] Schedule properly removed when removing advert
|
120 |
+
* [change] Dashboard tweaks and improvements
|
121 |
|
122 |
== Screenshots ==
|
123 |
|