Plugin Directory

Changeset 184527


Ignore:
Timestamp:
12/18/2009 08:07:30 PM (16 years ago)
Author:
dugbug
Message:

update

Location:
easy-chart-builder/trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • easy-chart-builder/trunk/easy-chart-builder.php

    r173334 r184527  
    22/*
    33Plugin Name: Easy Chart Builder
    4 Version: 0.4
     4Version: 0.5
    55Plugin URI: http://www.dyerware.com/main/easy-chart-builder
    66Description: Creates a chart directly in your post or page via shortcut.  Manages sizing of chart to support wptouch and other mobile themes.
     
    99*/
    1010/*  Copyright © 2009  dyerware
    11     Support: support@dyerware.com)
     11    Support: support@dyerware.com
    1212
    1313    This program is free software; you can redistribute it and/or modify
     
    3333    {   
    3434        $jsDir = get_option('siteurl') . '/wp-content/plugins/easy-chart-builder/js/';
    35         wp_register_script('wpEasyCharts', "{$jsDir}easy-chart-builder.js", false, '0.4');       
     35        wp_register_script('wpEasyCharts', "{$jsDir}easy-chart-builder.js", false, '0.5');       
    3636    }
    3737
     
    104104                'chartfadecolor' => 'DDDDDD',
    105105                'datatablecss' => 'hentry easyChartDataTable',
    106                 'imgstyle' => 'text-align:center;float:center;')
     106                'imgstyle' => 'text-align:center;float:center;',
     107                'watermark' => '',
     108                'watermarkColor' => 'A0BAE9')
    107109                , $atts );
    108110
  • easy-chart-builder/trunk/js/easy-chart-builder.js

    r173334 r184527  
    11/**
    22 * Handle: easyChartBuilder
    3  * Version: 0.4
     3 * Version: 0.5
    44 * Enqueue: true
    55 *
     
    77 * Author URI: http://www.dyerware.com
    88 * Copyright © 2009  dyerware
    9  * Support: support@dyerware.com)
     9 * Support: support@dyerware.com
    1010 */
    1111 
     
    6565        }
    6666    }
    67            
    68     var maxVal = this.normalizeValues(chartValues);   
     67
     68   
     69    var maxMin = this.normalizeValues(chartValues);   
    6970    var chartValuesString = this.encodeValues(chartValues, "");
    7071    var chartColor = chartHandle["chartcolor"];   
     
    123124    }
    124125   
    125     var maxVal = this.normalizeValues(chartValues);   
     126    var maxMin = this.normalizeValues(chartValues);   
     127   
     128    tempString = chartHandle["watermark"];
     129    var wmColor = chartHandle["watermarkColor"];
     130    var wmPrep = this.buildWatermark(maxMin, tempString, wmColor); 
     131       
    126132    var chartValuesString = this.encodeValues(chartValues, ",");
    127133    var chartColor = chartHandle["chartcolor"];
     
    133139    "&chdl=" + chartGroupNames + "&chdlp=b" +
    134140    "&chco=" + chartColors + "&chd=e:" + chartValuesString +
    135     "&chxt=y,x&chxr=0,0," + maxVal + "&chxl=1:" + chartValueNames;
     141    "&chxt=y,x&chxr=0,0," + maxMin[0] + "&chxl=1:" + chartValueNames + wmPrep;
    136142   
    137143        chartImg.src = url_src;
     
    182188    }
    183189   
    184     var maxVal = this.normalizeValues(chartValues);   
     190    var maxMin = this.normalizeValues(chartValues); 
     191    tempString = chartHandle["watermark"];
     192    var wmColor = chartHandle["watermarkColor"];
     193    var wmPrep = this.buildWatermark(maxMin, tempString, wmColor); 
     194         
    185195    var chartValuesString = this.encodeValues(chartValues, ","); 
    186196    var chartColor = chartHandle["chartcolor"];
     
    192202    "&chdl=" + chartGroupNames + "&chdlp=b" +
    193203    "&chco=" + chartColors + "&chd=e:" + chartValuesString +
    194     "&chxt=x,y&chxr=0,0," + maxVal + "&chxl=1:" + chartValueNames;
     204    "&chxt=x,y&chxr=0,0," + maxMin[0] + "&chxl=1:" + chartValueNames + wmPrep;
    195205   
    196206        chartImg.src = url_src;
    197207};
     208
     209easyChartBuilder.prototype.lineChart = function(chartId, chartImg, chartWidth, chartHeight, chartHandle)
     210{
     211    var chartTitle = chartHandle["title"];
     212   
     213    var tempString = chartHandle["groupnames"];
     214    var tempGroupNames = tempString.split(",");
     215    var chartGroups = tempGroupNames.length;
     216    var chartGroupNames = this.constructList(tempString, ",", "|",0, false);
     217   
     218    tempString = chartHandle["groupcolors"];
     219    var chartColors = this.constructList(tempString, ",", ",",0, false);
     220   
     221    tempString = chartHandle["valuenames"];
     222    var chartValueNames = "|" + this.constructList(tempString, ",", "|",0, false) + "|";
     223
     224    var groupName;
     225    var chartValues = new Array(chartGroups);
     226    for (var i = 0; i < chartGroups; i++)
     227    {
     228        groupName = "group" + (i+1) + "values";
     229        tempString = chartHandle[groupName];
     230       
     231        chartValues[i] = this.extractValues(tempString, ",", 0);
     232    }
     233   
     234    var hideChartData = chartHandle["hidechartdata"];
     235    if (hideChartData == false)
     236    {
     237        var tblIdContainer = document.getElementById(chartId + "_data");
     238        var tblId = document.getElementById(chartId + "_dataTable");
     239        if (tblId == undefined && tblIdContainer != undefined)
     240        {
     241            tblId = document.createElement('div');
     242            tblId.setAttribute('id',chartId + '_dataTable'); 
     243                               
     244            var chartColorOrig = chartHandle["groupcolors"].split(",");
     245            var chartValueTitleOrig = chartHandle["valuenames"].split(",");
     246            var chartCSS = chartHandle["datatablecss"];
     247            tblId.innerHTML = this.buildChartData(chartCSS, tempGroupNames, chartColorOrig, chartValueTitleOrig, chartValues);
     248            tblIdContainer.appendChild(tblId);
     249        }
     250    }
     251   
     252    // max,min,ratio
     253    var maxMin = this.normalizeValues(chartValues);   
     254    tempString = chartHandle["watermark"];
     255    var wmColor = chartHandle["watermarkColor"];
     256    var wmPrep = this.buildWatermark(maxMin, tempString, wmColor);   
     257
     258    var chartValuesString = this.encodeValues(chartValues, ",");
     259    var chartColor = chartHandle["chartcolor"];
     260    var chartFadeColor = chartHandle["chartfadecolor"];                   
     261        var url_src ="http://chart.apis.google.com/chart?cht=lc&chs=" + chartWidth + "x" + chartHeight +
     262    "&chma=10,10,10,40" +
     263    "&chf=c,lg,90," + chartColor + ",0.2," + chartFadeColor + ",0|bg,s,00000000" +
     264    "&chtt=" + chartTitle +
     265    "&chdl=" + chartGroupNames + "&chdlp=b" +
     266    "&chco=" + chartColors + "&chd=e:" + chartValuesString +
     267    "&chxt=y,x&chxr=0,0," + maxMin[0] + "&chxl=1:" + chartValueNames + wmPrep;
     268   
     269        chartImg.src = url_src;
     270};
     271
     272easyChartBuilder.prototype.buildWatermark = function(maxMin, wmString, wmColor)
     273{
     274    var wm = new Array();
     275   
     276    wm = this.extractValues(wmString, ",", 2);
     277    if (wm.length == 0)
     278    {return "";}
     279       
     280    if (wm.length == 1)
     281        wm[1] = maxMin[1];
     282   
     283    // Normalize watermarks
     284    var size = maxMin[0] - maxMin[1];
     285   
     286    wm[0] = wm[0] / maxMin[0];
     287    wm[1] = wm[1] / maxMin[0];
     288    var trimMe = new Number(wm[0]);
     289    wm[0] = trimMe.toPrecision(2);
     290    trimMe = new Number(wm[1]);
     291    wm[1] = trimMe.toPrecision(2);
     292
     293    return "&chm=r," + wmColor + ",0," + wm[0] + "," + wm[1];
     294}
     295
    198296
    199297easyChartBuilder.prototype.buildChartData = function(css, headers, headerColors, valueTitles, valueGrid)
     
    272370{
    273371    var len = valueGrid.length;
    274     var maxVal = 0;
     372    var maxMin = new Array();
    275373    var t, v, ratio;
    276374   
     375    maxMin[0] = 0;
     376    maxMin[1] = 0;
     377    maxMin[2] = 0;
     378   
    277379    for (t = 0; t < len; t++)
    278380    {
    279381        for (v = 0; v < valueGrid[t].length; v++)
    280             {maxVal = Math.max(valueGrid[t][v] , maxVal);}
    281     }
    282    
    283     ratio = 4095 / maxVal;
     382            {
     383                maxMin[0] = Math.max(valueGrid[t][v] , maxMin[0]);
     384                maxMin[1] = Math.min(valueGrid[t][v] , maxMin[1]);
     385            }
     386    }
     387   
     388    ratio = 4095 / maxMin[0];
     389    maxMin[2] = ratio;
    284390   
    285391    for (t = 0; t < len; t++)
     
    289395    }           
    290396   
    291     return parseInt(maxVal);
     397    return maxMin;
    292398};
    293399   
     
    375481        this.horizBarChart(chartId, imgId, new_width, new_height, chartHandle);
    376482    }
     483    else if (chartType == "line")
     484    {
     485        this.lineChart(chartId, imgId, new_width, new_height, chartHandle);
     486    }   
    377487    else
    378488    {
  • easy-chart-builder/trunk/readme.txt

    r173334 r184527  
    55Tags: chart,graph,charts,graphs,review,rating,comparison,mobile,shortcode
    66Requires at least: 2.8
    7 Tested up to: 2.8.5
    8 Stable tag: 0.4
     7Tested up to: 2.9
     8Stable tag: 0.5
    99
    1010This plugin allows you to easily create charts within your blog by use of shortcodes.
     
    57574. The data table (optional)
    5858
     595. A chart showing the watermark feature.
     60
    5961
    6062== Changelog ==
     63
     64= 0.5 =
     65 * Added new chart type "line".  It is not very effective, IMHO.  If you use it let me know
     66 * Added new watermark feature whereby you can color a background region of the graph.
    6167
    6268= 0.4 =
Note: See TracChangeset for help on using the changeset viewer.