示例#1
0
/**
  @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;
}
示例#2
0
/**
  @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;
}
示例#3
0
 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;
 }