Example #1
0
/**
 * Draws Chart for PDF Report.
 *
 * Draws the sales and earnings chart for the PDF report and then retrieves the
 * URL of that chart to display on the PDF Report.
 *
 * @since  1.1.4.0
 * @uses   GoogleChart
 * @uses   GoogleChartData
 * @uses   GoogleChartShapeMarker
 * @uses   GoogleChartTextMarker
 * @uses   GoogleChartAxis
 * @return string $chart->getUrl() URL for the Google Chart
 */
function give_draw_chart_image()
{
    require_once GIVE_PLUGIN_DIR . '/includes/libraries/googlechartlib/GoogleChart.php';
    require_once GIVE_PLUGIN_DIR . '/includes/libraries/googlechartlib/markers/GoogleChartShapeMarker.php';
    require_once GIVE_PLUGIN_DIR . '/includes/libraries/googlechartlib/markers/GoogleChartTextMarker.php';
    $chart = new GoogleChart('lc', 900, 330);
    $i = 1;
    $earnings = "";
    $sales = "";
    while ($i <= 12) {
        $earnings .= give_get_earnings_by_date(null, $i, date('Y')) . ",";
        $sales .= give_get_sales_by_date(null, $i, date('Y')) . ",";
        $i++;
    }
    $earnings_array = explode(",", $earnings);
    $sales_array = explode(",", $sales);
    $i = 0;
    while ($i <= 11) {
        if (empty($sales_array[$i])) {
            $sales_array[$i] = 0;
        }
        $i++;
    }
    $min_earnings = 0;
    $max_earnings = max($earnings_array);
    $earnings_scale = round($max_earnings, -1);
    $data = new GoogleChartData(array($earnings_array[0], $earnings_array[1], $earnings_array[2], $earnings_array[3], $earnings_array[4], $earnings_array[5], $earnings_array[6], $earnings_array[7], $earnings_array[8], $earnings_array[9], $earnings_array[10], $earnings_array[11]));
    $data->setLegend(esc_html__('Income', 'give'));
    $data->setColor('1b58a3');
    $chart->addData($data);
    $shape_marker = new GoogleChartShapeMarker(GoogleChartShapeMarker::CIRCLE);
    $shape_marker->setColor('000000');
    $shape_marker->setSize(7);
    $shape_marker->setBorder(2);
    $shape_marker->setData($data);
    $chart->addMarker($shape_marker);
    $value_marker = new GoogleChartTextMarker(GoogleChartTextMarker::VALUE);
    $value_marker->setColor('000000');
    $value_marker->setData($data);
    $chart->addMarker($value_marker);
    $data = new GoogleChartData(array($sales_array[0], $sales_array[1], $sales_array[2], $sales_array[3], $sales_array[4], $sales_array[5], $sales_array[6], $sales_array[7], $sales_array[8], $sales_array[9], $sales_array[10], $sales_array[11]));
    $data->setLegend(esc_html__('Donations', 'give'));
    $data->setColor('ff6c1c');
    $chart->addData($data);
    $chart->setTitle(esc_html__('Donations by Month for all Give Forms', 'give'), '336699', 18);
    $chart->setScale(0, $max_earnings);
    $y_axis = new GoogleChartAxis('y');
    $y_axis->setDrawTickMarks(true)->setLabels(array(0, $max_earnings));
    $chart->addAxis($y_axis);
    $x_axis = new GoogleChartAxis('x');
    $x_axis->setTickMarks(5);
    $x_axis->setLabels(array(esc_html__('Jan', 'give'), esc_html__('Feb', 'give'), esc_html__('Mar', 'give'), esc_html__('Apr', 'give'), esc_html__('May', 'give'), esc_html__('June', 'give'), esc_html__('July', 'give'), esc_html__('Aug', 'give'), esc_html__('Sept', 'give'), esc_html__('Oct', 'give'), esc_html__('Nov', 'give'), esc_html__('Dec', 'give')));
    $chart->addAxis($x_axis);
    $shape_marker = new GoogleChartShapeMarker(GoogleChartShapeMarker::CIRCLE);
    $shape_marker->setSize(6);
    $shape_marker->setBorder(2);
    $shape_marker->setData($data);
    $chart->addMarker($shape_marker);
    $value_marker = new GoogleChartTextMarker(GoogleChartTextMarker::VALUE);
    $value_marker->setData($data);
    $chart->addMarker($value_marker);
    return $chart->getUrl();
}
Example #2
0
function sparklines()
{
    $values = array(34, 18, 21, 70, 53, 39, 39, 30, 13, 15, 24, 78, 85, 88, 74, 98, 44, 16, 16, 33, 50, 47, 55, 20, 20, 28, 44);
    $chart = new GoogleChart('ls', 75, 30);
    $chart->setFill('73A2BD');
    $data = new GoogleChartData($values);
    $data->setThickness(1);
    $data->setColor('C02942');
    $data->setFill('D95B43');
    $chart->addData($data);
    return $chart->getUrl();
}