관리-도구
편집 파일: functions_banner_graphs.php
<?php /** * @copyright Copyright 2003-2022 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 * @version $Id: lat9 2022 May 05 New in v1.5.8-alpha $ */ function zen_get_banner_data_recent($banner_id, $days) { global $db; $set1 = $set2 = $stats = array(); $result = $db->Execute("select dayofmonth(banners_history_date) as source, banners_shown as impressions, banners_clicked as clicks from " . TABLE_BANNERS_HISTORY . " where banners_id = '" . (int)$banner_id . "' and to_days(now()) - to_days(banners_history_date) < " . zen_db_input($days) . " order by banners_history_date"); while (!$result->EOF) { $set1[] = array($result->fields['source'], $result->fields['impressions']); $set2[] = array($result->fields['source'], $result->fields['clicks']); $stats[] = array($result->fields['source'], $result->fields['impressions'], $result->fields['clicks']); $result->MoveNext(); } if (sizeof($set1) < 1) $set1 = $set2 = array(array(date('j'), 0)); return array($set1, $set2, $stats); } function zen_get_banner_data_yearly($banner_id) { global $db; $set1 = $set2 = array(array(0, 0)); $years = array(0=>''); $stats = array(); $result = $db->Execute("select year(banners_history_date) as year, sum(banners_shown) as impressions, sum(banners_clicked) as clicks from " . TABLE_BANNERS_HISTORY . " where banners_id = '" . (int)$banner_id . "' group by year order by year"); while (!$result->EOF) { $set1[] = array((int)$result->fields['year'], (int)$result->fields['impressions']); $set2[] = array((int)$result->fields['year'], (int)$result->fields['clicks']); $stats[] = array($result->fields['year'], $result->fields['impressions'], $result->fields['clicks']); $years[] = (string)$result->fields['year']; $result->MoveNext(); } return array($set1, $set2, $stats, $years); } function zen_get_banner_data_monthly($banner_id, $year = '') { global $db, $zcDate; if ((int)$year == 0) $year = date('Y'); $set1 = $set2 = $stats = $months = array(); for ($i=1; $i<13; $i++) { $m = $zcDate->output('%b', mktime(0,0,0,$i)); $months[] = array((int)$i, $m); $set1[] = $set2[] = $stats[] = array($i, 0); } $result = $db->Execute("select month(banners_history_date) as banner_month, sum(banners_shown) as impressions, sum(banners_clicked) as clicks from " . TABLE_BANNERS_HISTORY . " where banners_id = '" . (int)$banner_id . "' and year(banners_history_date) = '" . zen_db_input($year) . "' group by banner_month order by banner_month"); while (!$result->EOF) { $set1[($result->fields['banner_month']-1)] = array((int)$result->fields['banner_month'], (int)$result->fields['impressions']); $set2[($result->fields['banner_month']-1)] = array((int)$result->fields['banner_month'], (int)$result->fields['clicks']); $stats[($result->fields['banner_month']-1)] = array((int)$result->fields['banner_month'], (int)$result->fields['impressions'], (int)$result->fields['clicks']); $result->MoveNext(); } return array($set1, $set2, $stats, $months); } function zen_get_banner_data_daily($banner_id, $year = '', $month = '') { global $db; if ((int)$year == 0) $year = date('Y'); if ((int)$month == 0) $month = date('n'); $set1 = $set2 = array(); $days = (date('t', mktime(0,0,0,$month))+1); for ($i=1; $i<$days; $i++) { $set1[] = $set2[] = $stats[] = array($i, 0); } $result = $db->Execute("select dayofmonth(banners_history_date) as banner_day, banners_shown as impressions, banners_clicked as clicks from " . TABLE_BANNERS_HISTORY . " where banners_id = '" . (int)$banner_id . "' and month(banners_history_date) = '" . zen_db_input($month) . "' and year(banners_history_date) = '" . zen_db_input($year) . "' order by banner_day"); while (!$result->EOF) { $set1[($result->fields['banner_day']-1)] = array((int)$result->fields['banner_day'], (int)$result->fields['impressions']); $set2[($result->fields['banner_day']-1)] = array((int)$result->fields['banner_day'], (int)$result->fields['clicks']); $stats[($result->fields['banner_day']-1)] = array((int)$result->fields['banner_day'], (int)$result->fields['impressions'], (int)$result->fields['clicks']); $result->MoveNext(); } return array($set1, $set2, $stats); }