function buildChart(&$rows)
 {
     $this->_interval = 'events';
     $countEvent = NULL;
     if (CRM_Utils_Array::value('charts', $this->_params)) {
         foreach ($rows as $key => $value) {
             if ($value['civicrm_event_id']) {
                 $graphRows['totalParticipants'][] = $rows[$key]['civicrm_line_item_participant_count_count'];
                 $graphRows[$this->_interval][] = substr($rows[$key]['civicrm_event_title'], 0, 12) . "..(" . $rows[$key]['civicrm_event_id'] . ") ";
                 $graphRows['value'][] = $rows[$key]['civicrm_line_item_participant_count_count'];
             }
         }
         if ($rows[$key]['civicrm_line_item_participant_count_count'] == 0) {
             $countEvent = count($rows);
         }
         if (!empty($rows) && $countEvent != 1) {
             $chartInfo = array('legend' => 'Participants Summary', 'xname' => 'Event', 'yname' => 'Total Participants');
             if (!empty($graphRows)) {
                 foreach ($graphRows[$this->_interval] as $key => $val) {
                     $graph[$val] = $graphRows['value'][$key];
                 }
                 $chartInfo['values'] = $graph;
                 $chartInfo['tip'] = 'Participants : #val#';
                 $chartInfo['xLabelAngle'] = 20;
                 // build the chart.
                 CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']);
             }
         }
     }
 }
예제 #2
0
 /**
  * @param $rows
  */
 public function buildChart(&$rows)
 {
     if (empty($rows)) {
         return;
     }
     $chartInfo = array('legend' => ts('Mail Bounce Report'), 'xname' => ts('Mailing'), 'yname' => ts('Bounce'), 'xLabelAngle' => 20, 'tip' => ts('Mail Bounce: %1', array(1 => '#val#')));
     foreach ($rows as $row) {
         $chartInfo['values'][$row['civicrm_mailing_mailing_name_alias']] = $row['civicrm_mailing_bounce_count'];
     }
     // build the chart.
     CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']);
     $this->assign('chartType', $this->_params['charts']);
 }
예제 #3
0
 /**
  * @param $rows
  */
 public function buildChart(&$rows)
 {
     $this->_interval = 'events';
     $countEvent = NULL;
     if (!empty($this->_params['charts'])) {
         foreach ($rows as $key => $value) {
             $graphRows['totalAmount'][] = $graphRows['value'][] = CRM_Utils_Array::value('totalAmount', $rows[$key]);
             $graphRows[$this->_interval][] = substr($rows[$key]['civicrm_event_title'], 0, 12) . "..(" . $rows[$key]['civicrm_event_id'] . ") ";
         }
         if (CRM_Utils_Array::value('totalAmount', $rows[$key]) == 0) {
             $countEvent = count($rows);
         }
         if (!empty($rows) && $countEvent != 1) {
             $config = CRM_Core_Config::Singleton();
             $chartInfo = array('legend' => 'Event Summary', 'xname' => 'Event', 'yname' => "Total Amount ({$config->defaultCurrency})");
             if (!empty($graphRows)) {
                 foreach ($graphRows[$this->_interval] as $key => $val) {
                     $graph[$val] = $graphRows['value'][$key];
                 }
                 $chartInfo['values'] = $graph;
                 $chartInfo['xLabelAngle'] = 20;
                 // build the chart.
                 CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']);
                 $this->assign('chartType', $this->_params['charts']);
             }
         }
     }
 }
예제 #4
0
 /**
  * @param $rows
  */
 public function buildChart(&$rows)
 {
     if (empty($rows)) {
         return;
     }
     $criteria = self::getChartCriteria();
     $chartInfo = array('legend' => ts('Mail Summary'), 'xname' => ts('Mailing'), 'yname' => ts('Statistics'), 'xLabelAngle' => 20, 'tip' => array());
     $plotRate = $plotCount = TRUE;
     foreach ($rows as $row) {
         $chartInfo['values'][$row['civicrm_mailing_name']] = array();
         if ($plotCount) {
             foreach ($criteria['count'] as $criteria => $label) {
                 if (isset($row[$criteria])) {
                     $chartInfo['values'][$row['civicrm_mailing_name']][$label] = $row[$criteria];
                     $chartInfo['tip'][$label] = "{$label} #val#";
                     $plotRate = FALSE;
                 } elseif (isset($criteria['count'][$criteria])) {
                     unset($criteria['count'][$criteria]);
                 }
             }
         }
         if ($plotRate) {
             foreach ($criteria['rate'] as $criteria => $label) {
                 if (isset($row[$criteria])) {
                     $chartInfo['values'][$row['civicrm_mailing_name']][$label] = $row[$criteria];
                     $chartInfo['tip'][$label] = "{$label} #val#";
                     $plotCount = FALSE;
                 } elseif (isset($criteria['rate'][$criteria])) {
                     unset($criteria['rate'][$criteria]);
                 }
             }
         }
     }
     if ($plotCount) {
         $criteria = $criteria['count'];
     } else {
         $criteria = $criteria['rate'];
     }
     $chartInfo['criteria'] = array_values($criteria);
     // dynamically set the graph size
     $chartInfo['xSize'] = count($rows) * 125 + count($rows) * count($criteria) * 40;
     // build the chart.
     CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']);
     $this->assign('chartType', $this->_params['charts']);
 }
예제 #5
0
 function buildChart(&$rows)
 {
     if (empty($rows)) {
         return;
     }
     $chartInfo = array('legend' => ts('Mail Opened Report'), 'xname' => ts('Mailing'), 'yname' => ts('Opened'), 'xLabelAngle' => 20, 'tip' => ts('Mail Opened: %1', array(1 => '#val#')));
     foreach ($rows as $row) {
         $chartInfo['values'][$row['civicrm_mailing_name']] = $row['civicrm_mailing_opened_count'];
     }
     // build the chart.
     require_once 'CRM/Utils/OpenFlashChart.php';
     CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']);
     $this->assign('chartType', $this->_params['charts']);
 }