/** @package admin::graphs @author Loaded Commerce @copyright Copyright 2003-2014 Loaded Commerce, LLC @copyright Portions Copyright 2003 osCommerce @license https://github.com/loadedcommerce/loaded7/blob/master/LICENSE.txt @version $Id: banner_yearly.php v1.0 2013-08-08 datazen $ */ function lc_banner_yearly($_id) { global $lC_Database, $lC_Language, $lC_Vqmod; require $lC_Vqmod->modCheck('external/panachart/panachart.php'); $lC_ObjectInfo = new lC_ObjectInfo(lC_Banner_manager_Admin::getData($_id)); $image_extension = lc_dynamic_image_extension(); $views = array(); $clicks = array(); $vLabels = array(); $stats = array(); $Qstats = $lC_Database->query('select year(banners_history_date) as year, sum(banners_shown) as value, sum(banners_clicked) as dvalue from :table_banners_history where banners_id = :banners_id group by year'); $Qstats->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qstats->bindInt(':banners_id', $_id); $Qstats->execute(); while ($Qstats->next()) { $stats[] = array($Qstats->valueInt('year'), $Qstats->valueInt('value') > 0 ? $Qstats->valueInt('value') : '0', $Qstats->valueInt('dvalue') > 0 ? $Qstats->valueInt('dvalue') : '0'); $views[] = $Qstats->valueInt('value'); $clicks[] = $Qstats->valueInt('dvalue'); $vLabels[] = $Qstats->valueInt('year'); } $ochart = new chart(600, 350, 5, '#eeeeee'); $ochart->setTitle(sprintf($lC_Language->get('subsection_heading_statistics_yearly'), $lC_ObjectInfo->get('banners_title')), '#000000', 2); $ochart->setPlotArea(SOLID, '#444444', '#dddddd'); $ochart->setFormat(0, ',', '.'); $ochart->setXAxis('#000000', SOLID, 1, ''); $ochart->setYAxis('#000000', SOLID, 2, ''); $ochart->setLabels($vLabels, '#000000', 1, VERTICAL); $ochart->setGrid('#bbbbbb', DASHED, '#bbbbbb', DOTTED); $ochart->addSeries($views, 'area', 'Series1', SOLID, '#000000', '#0000ff'); $ochart->addSeries($clicks, 'area', 'Series1', SOLID, '#000000', '#ff0000'); $ochart->plot('images/graphs/banner_yearly-' . $_id . '.' . $image_extension); return $stats; }
/** @package admin::graphs @author Loaded Commerce @copyright Copyright 2003-2014 Loaded Commerce, LLC @copyright Portions Copyright 2003 osCommerce @license https://github.com/loadedcommerce/loaded7/blob/master/LICENSE.txt @version $Id: banner_daily.php v1.0 2013-08-08 datazen $ */ function lc_banner_daily($_id, $_month, $_year) { global $lC_Database, $lC_Language, $lC_Vqmod; require $lC_Vqmod->modCheck('external/panachart/panachart.php'); $lC_ObjectInfo = new lC_ObjectInfo(lC_Banner_manager_Admin::getData($_id)); $image_extension = lc_dynamic_image_extension(); $views = array(); $clicks = array(); $vLabels = array(); $days = @date('t', @mktime(0, 0, 0, $_month)) + 1; $stats = array(); for ($i = 1; $i < $days; $i++) { $stats[] = array($i, '0', '0'); $views[$i - 1] = 0; $clicks[$i - 1] = 0; $vLabels[] = $i; } $Qstats = $lC_Database->query('select dayofmonth(banners_history_date) as banner_day, banners_shown as value, banners_clicked as dvalue from :table_banners_history where banners_id = :banners_id and month(banners_history_date) = :month and year(banners_history_date) = :year'); $Qstats->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qstats->bindInt(':banners_id', $_id); $Qstats->bindInt(':month', $_month); $Qstats->bindInt(':year', $_year); $Qstats->execute(); while ($Qstats->next()) { $stats[$Qstats->valueInt('banner_day') - 1] = array($Qstats->valueInt('banner_day'), $Qstats->valueInt('value') > 0 ? $Qstats->valueInt('value') : '0', $Qstats->valueInt('dvalue') > 0 ? $Qstats->valueInt('dvalue') : '0'); $views[$Qstats->valueInt('banner_day') - 1] = $Qstats->valueInt('value'); $clicks[$Qstats->valueInt('banner_day') - 1] = $Qstats->valueInt('dvalue'); } $ochart = new chart(600, 350, 5, '#eeeeee'); $ochart->setTitle(sprintf($lC_Language->get('subsection_heading_statistics_daily'), $lC_ObjectInfo->get('banners_title'), @strftime('%B', @mktime(0, 0, 0, $_month)), $_year), '#000000', 2); $ochart->setPlotArea(SOLID, '#444444', '#dddddd'); $ochart->setFormat(0, ',', '.'); $ochart->setXAxis('#000000', SOLID, 1, ''); $ochart->setYAxis('#000000', SOLID, 2, ''); $ochart->setLabels($vLabels, '#000000', 1, VERTICAL); $ochart->setGrid('#bbbbbb', DASHED, '#bbbbbb', DOTTED); $ochart->addSeries($views, 'area', 'Series1', SOLID, '#000000', '#0000ff'); $ochart->addSeries($clicks, 'area', 'Series1', SOLID, '#000000', '#ff0000'); $ochart->plot('images/graphs/banner_daily-' . $_id . '_' . $_month . '.' . $image_extension); return $stats; }
public static function stats($id, $type = '', $month = '', $year = '') { global $lC_Database, $lC_Language, $lC_Template, $lC_Vqmod; $lC_Language->loadIniFile('banner_manager.php'); $Qyears = $lC_Database->query('select distinct year(banners_history_date) as banner_year from :table_banners_history where banners_id = :banners_id'); $Qyears->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qyears->bindInt(':banners_id', $id); $Qyears->execute(); $years_array = array(); while ($Qyears->next()) { $years_array[] = array('id' => $Qyears->valueInt('banner_year'), 'text' => $Qyears->valueInt('banner_year')); } if ($years_array[0] == null) { $years_array[] = array('id' => @date("Y"), 'text' => @date("Y")); } $Qyears->freeResult(); $months_array = array(); for ($i = 1; $i < 13; $i++) { $months_array[] = array('id' => $i, 'text' => @strftime('%B', @mktime(0, 0, 0, $i))); } $type_array = array(array('id' => 'daily', 'text' => $lC_Language->get('section_daily')), array('id' => 'monthly', 'text' => $lC_Language->get('section_monthly')), array('id' => 'yearly', 'text' => $lC_Language->get('section_yearly'))); $lC_ObjectInfo = new lC_ObjectInfo(lC_Banner_manager_Admin::getData($id)); $result['formElements'] = $lC_Language->get('operation_heading_type') . ' ' . lc_draw_pull_down_menu('type', $type_array, 'daily', 'onchange="updateStats(\'' . $id . '\');"') . ' '; switch ($type) { case 'yearly': break; case 'monthly': $result['formElements'] .= $lC_Language->get('operation_heading_year') . ' ' . lc_draw_pull_down_menu('year', $years_array, @date('Y'), 'onchange="updateStats(\'' . $id . '\');"'); break; case 'daily': default: $result['formElements'] .= $lC_Language->get('operation_heading_month') . ' ' . lc_draw_pull_down_menu('month', $months_array, @date('n'), 'onchange="updateStats(\'' . $id . '\');"') . ' ' . $lC_Language->get('operation_heading_year') . ' ' . lc_draw_pull_down_menu('year', $years_array, @date('Y'), 'onchange="updateStats(\'' . $id . '\');"'); break; } $result['graphInfo'] = ''; $image_extension = lc_dynamic_image_extension(); if ($year == null) { $year = @date("Y"); } if ($month == null) { $month = @date("n"); } if (is_dir('images/graphs') && is_writeable('images/graphs') && !empty($image_extension)) { switch ($type) { case 'yearly': include $lC_Vqmod->modCheck('includes/graphs/banner_yearly.php'); $stats = lc_banner_yearly((int) $id); $result['graphInfo'] = '<p align="center">' . lc_image('images/graphs/banner_yearly-' . $id . '.' . $image_extension) . '</p>'; break; case 'monthly': include $lC_Vqmod->modCheck('includes/graphs/banner_monthly.php'); $stats = lc_banner_monthly((int) $id, (int) $year); $result['graphInfo'] = '<p align="center">' . lc_image('images/graphs/banner_monthly-' . $id . '.' . $image_extension) . '</p>'; break; case 'daily': default: include $lC_Vqmod->modCheck('includes/graphs/banner_daily.php'); $stats = lc_banner_daily((int) $id, (int) $month, (int) $year); $result['graphInfo'] = '<p align="center">' . lc_image('images/graphs/banner_daily-' . $id . '_' . $month . '.' . $image_extension) . '</p>'; break; } } else { if (!empty($image_extension)) { if (is_dir('images/graphs')) { if (!is_writeable('images/graphs')) { $result['error'] = true; $result['errmsg'] = sprintf($lC_Language->get('ms_error_graphs_directory_not_writable'), realpath('images/graphs')); } } else { $result['error'] = true; $result['errmsg'] = sprintf($lC_Language->get('ms_error_graphs_directory_non_existant'), realpath('images/graphs')); } } } $result['bannerStats'] = ''; if (isset($stats)) { for ($i = 0, $n = sizeof($stats); $i < $n; $i++) { $result['bannerStats'] .= '<tr>' . ' <td>' . $stats[$i][0] . '</td>' . ' <td>' . number_format($stats[$i][1]) . '</td>' . ' <td>' . number_format($stats[$i][2]) . '</td>' . '</tr>'; } } return $result; }