Changeset 208040
- Timestamp:
- 02/19/2010 05:54:47 PM (16 years ago)
- Location:
- easy-chart-builder/trunk
- Files:
-
- 1 added
- 3 edited
-
easy-chart-builder.php (modified) (4 diffs)
-
js/easy-chart-builder.js (modified) (7 diffs)
-
readme.txt (modified) (5 diffs)
-
screenshot-7.png (added)
Legend:
- Unmodified
- Added
- Removed
-
easy-chart-builder/trunk/easy-chart-builder.php
r202637 r208040 2 2 /* 3 3 Plugin Name: Easy Chart Builder 4 Version: 0. 74 Version: 0.8 5 5 Plugin URI: http://www.dyerware.com/main/easy-chart-builder 6 6 Description: Creates a chart directly in your post or page via shortcut. Manages sizing of chart to support wptouch and other mobile themes. … … 33 33 { 34 34 $jsDir = get_option('siteurl') . '/wp-content/plugins/easy-chart-builder/js/'; 35 wp_register_script('wpEasyCharts', "{$jsDir}easy-chart-builder.js", false, '0. 9');35 wp_register_script('wpEasyCharts', "{$jsDir}easy-chart-builder.js", false, '0.10'); 36 36 } 37 37 … … 104 104 'group11values' => '0,0,0', 105 105 'group12values' => '0,0,0', 106 'group1markers' => '', 107 'group2markers' => '', 108 'group3markers' => '', 109 'group4markers' => '', 110 'group5markers' => '', 111 'group6markers' => '', 112 'group7markers' => '', 113 'group8markers' => '', 114 'group9markers' => '', 115 'group10markers' => '', 116 'group11markers' => '', 117 'group12markers' => '', 118 'markercolor' => 'FFFF00', 106 119 'imagealtattr' => 'dyerware', 107 120 'imagetitleattr' => '', … … 172 185 return <<<ecbCode 173 186 <div id={$chartDiv} style='width:100%;' style='text-align:center;' align='center'> 187 <!-- Easy Chart Builder by dyerware --> 174 188 <img id={$chartImg} style='{$chartConfig['imgstyle']}' alt='{$chartConfig['imagealtattr']}' title='{$chartConfig['imagetitleattr']}' align='center' border='0' /> 175 189 {$dataShow} -
easy-chart-builder/trunk/js/easy-chart-builder.js
r202637 r208040 1 1 /** 2 2 * Handle: easyChartBuilder 3 * Version: 0. 93 * Version: 0.10 4 4 * Enqueue: true 5 5 * … … 85 85 }; 86 86 87 easyChartBuilder.prototype.vertBarChart = function(chartId, chartImg, chartWidth, chartHeight, chartHandle) 88 { 89 var chartTitle = chartHandle["title"]; 90 91 var tempString = chartHandle["groupnames"]; 92 var tempGroupNames = tempString.split(","); 93 var chartGroups = tempGroupNames.length; 94 var chartGroupNames = this.constructList(tempString, ",", "|",0, false); 95 96 tempString = chartHandle["groupcolors"]; 97 var chartColors = this.constructList(tempString, ",", ",",0, false); 98 99 tempString = chartHandle["valuenames"]; 100 var chartValueNames = "|" + this.constructList(tempString, ",", "|",0, false); 101 102 var groupName; 103 var chartValues = new Array(chartGroups); 104 for (var i = 0; i < chartGroups; i++) 105 { 106 groupName = "group" + (i+1) + "values"; 107 tempString = chartHandle[groupName]; 108 109 chartValues[i] = this.extractValues(tempString, ",", 0); 110 } 111 112 var hideChartData = chartHandle["hidechartdata"]; 113 if (hideChartData == false) 114 { 115 var tblIdContainer = document.getElementById(chartId + "_data"); 116 var tblId = document.getElementById(chartId + "_dataTable"); 117 if (tblId == undefined && tblIdContainer != undefined) 118 { 119 tblId = document.createElement('div'); 120 tblId.setAttribute('id',chartId + '_dataTable'); 121 122 tblId.innerHTML = this.buildChartData(chartHandle, tempGroupNames, chartValues); 123 tblIdContainer.appendChild(tblId); 124 } 125 } 126 127 var maxMin = this.normalizeValues(chartValues, true, chartHandle); 128 var minAxis = chartHandle["minaxis"]; 129 if (minAxis == "") 130 { 131 if (maxMin[1] < 0) 132 {minAxis = maxMin[1];} 133 else {minAxis = "0";} 134 } 135 136 tempString = chartHandle["watermark"]; 137 var wmColor = chartHandle["watermarkcolor"]; 138 var wmPrep = this.buildWatermark(maxMin, tempString, wmColor); 139 140 var chartValuesString = this.encodeValues(chartValues, ","); 141 var chartColor = chartHandle["chartcolor"]; 142 var chartFadeColor = chartHandle["chartfadecolor"]; 143 var url_src ="http://chart.apis.google.com/chart?cht=bvg&chbh=r,0.2,1.0&chs=" + chartWidth + "x" + chartHeight + 144 "&chma=10,10,10,40" + 145 "&chf=c,lg,90," + chartColor + ",0.2," + chartFadeColor + ",0|bg,s,00000000" + 146 "&chtt=" + chartTitle + 147 "&chdl=" + chartGroupNames + "&chdlp=b" + 148 "&chco=" + chartColors + "&chd=e:" + chartValuesString + 149 "&chxt=y,x&chxr=0," + minAxis + "," + maxMin[0] + "&chxl=1:" + chartValueNames + wmPrep; 150 151 chartImg.src = url_src; 152 }; 153 154 155 easyChartBuilder.prototype.horizBarChart = function(chartId, chartImg, chartWidth, chartHeight, chartHandle) 87 88 easyChartBuilder.prototype.groupChart = function(chartType, chartId, chartImg, chartWidth, chartHeight, chartHandle) 156 89 { 157 90 var chartTitle = chartHandle["title"]; … … 203 136 tempString = chartHandle["watermark"]; 204 137 var wmColor = chartHandle["watermarkcolor"]; 205 var wmPrep = this.buildWatermark(maxMin, tempString, wmColor );138 var wmPrep = this.buildWatermark(maxMin, tempString, wmColor, chartHandle["minaxis"]); 206 139 207 140 var chartValuesString = this.encodeValues(chartValues, ","); 208 141 var chartColor = chartHandle["chartcolor"]; 209 142 var chartFadeColor = chartHandle["chartfadecolor"]; 210 var url_src ="http://chart.apis.google.com/chart?cht=bhg&chbh=r,0.2,1.0&chs=" + chartWidth + "x" + chartHeight + 211 "&chma=10,10,10,40" + 212 "&chf=c,lg,90," + chartColor + ",0.2," + chartFadeColor + ",0|bg,s,00000000" + 213 "&chtt=" + chartTitle + 214 "&chdl=" + chartGroupNames + "&chdlp=b" + 215 "&chco=" + chartColors + "&chd=e:" + chartValuesString + 216 "&chxt=x,y&chxr=0," + minAxis + "," + maxMin[0] + "&chxl=1:" + chartValueNames + wmPrep; 217 143 144 var chartMarkers = this.buildMarkers(chartHandle, tempGroupNames.length); 145 146 var url_src = null; 147 var common_parts = "chs=" + chartWidth + "x" + chartHeight + 148 "&chma=10,10,10,40" + 149 "&chf=c,lg,90," + chartColor + ",0.2," + chartFadeColor + ",0|bg,s,00000000" + 150 "&chtt=" + chartTitle + 151 "&chdl=" + chartGroupNames + "&chdlp=b" + 152 "&chco=" + chartColors + "&chd=e:" + chartValuesString + "&chxl=1:" + chartValueNames + wmPrep + 153 chartMarkers; 154 155 if (chartType == "vertbar") 156 { 157 url_src ="http://chart.apis.google.com/chart?cht=bvg&chbh=r,0.2,1.0&" + common_parts + 158 "&chxt=y,x&chxr=0," + minAxis + "," + maxMin[0]; 159 } 160 else if (chartType == "horizbar") 161 { 162 url_src ="http://chart.apis.google.com/chart?cht=bhg&chbh=r,0.2,1.0&" + common_parts + 163 "&chxt=x,y&chxr=0," + minAxis + "," + maxMin[0]; 164 } 165 else if (chartType == "vertbarstack") 166 { 167 url_src ="http://chart.apis.google.com/chart?cht=bvs&chbh=r,0.2,1.0&" + common_parts + 168 "&chxt=y,x&chxr=0," + minAxis + "," + maxMin[0]; 169 } 170 else if (chartType == "horizbarstack") 171 { 172 url_src ="http://chart.apis.google.com/chart?cht=bhs&chbh=r,0.2,1.0&" + common_parts + 173 "&chxt=x,y&chxr=0," + minAxis + "," + maxMin[0]; 174 } 175 else if (chartType == "line") 176 { 177 url_src ="http://chart.apis.google.com/chart?cht=lc&" + common_parts + 178 "&chxt=y,x&chxr=0," + minAxis + "," + maxMin[0]; 179 } 180 else 181 { 182 alert("Unknown chart type: " + chartType); 183 url_src = "NO_VALID_CHART_TYPE"; 184 } 185 186 218 187 chartImg.src = url_src; 219 188 }; 220 221 easyChartBuilder.prototype.lineChart = function(chartId, chartImg, chartWidth, chartHeight, chartHandle) 222 { 223 var chartTitle = chartHandle["title"]; 224 225 var tempString = chartHandle["groupnames"]; 226 var tempGroupNames = tempString.split(","); 227 var chartGroups = tempGroupNames.length; 228 var chartGroupNames = this.constructList(tempString, ",", "|",0, false); 229 230 tempString = chartHandle["groupcolors"]; 231 var chartColors = this.constructList(tempString, ",", ",",0, false); 232 233 tempString = chartHandle["valuenames"]; 234 var chartValueNames = "|" + this.constructList(tempString, ",", "|",0, false); 235 236 var groupName; 237 var chartValues = new Array(chartGroups); 238 for (var i = 0; i < chartGroups; i++) 239 { 240 groupName = "group" + (i+1) + "values"; 241 tempString = chartHandle[groupName]; 242 243 chartValues[i] = this.extractValues(tempString, ",", 0); 244 } 245 246 var hideChartData = chartHandle["hidechartdata"]; 247 if (hideChartData == false) 248 { 249 var tblIdContainer = document.getElementById(chartId + "_data"); 250 var tblId = document.getElementById(chartId + "_dataTable"); 251 if (tblId == undefined && tblIdContainer != undefined) 252 { 253 tblId = document.createElement('div'); 254 tblId.setAttribute('id',chartId + '_dataTable'); 255 256 tblId.innerHTML = this.buildChartData(chartHandle, tempGroupNames, chartValues); 257 tblIdContainer.appendChild(tblId); 258 } 259 } 260 261 // max,min,ratio 262 var maxMin = this.normalizeValues(chartValues, true, chartHandle); 263 tempString = chartHandle["watermark"]; 264 var wmColor = chartHandle["watermarkcolor"]; 265 var wmPrep = this.buildWatermark(maxMin, tempString, wmColor); 266 267 var chartValuesString = this.encodeValues(chartValues, ","); 268 var chartColor = chartHandle["chartcolor"]; 269 var chartFadeColor = chartHandle["chartfadecolor"]; 270 271 var minAxis = chartHandle["minaxis"]; 272 if (minAxis == "") 273 { 274 if (maxMin[1] < 0) 275 {minAxis = maxMin[1];} 276 else {minAxis = "0";} 277 } 278 279 var url_src ="http://chart.apis.google.com/chart?cht=lc&chs=" + chartWidth + "x" + chartHeight + 280 "&chma=10,10,10,40" + 281 "&chf=c,lg,90," + chartColor + ",0.2," + chartFadeColor + ",0|bg,s,00000000" + 282 "&chtt=" + chartTitle + 283 "&chdl=" + chartGroupNames + "&chdlp=b" + 284 "&chco=" + chartColors + "&chd=e:" + chartValuesString + 285 "&chxt=y,x&chxr=0," + minAxis + "," + maxMin[0] + "&chxl=1:" + chartValueNames + wmPrep; 286 287 chartImg.src = url_src; 288 }; 289 290 easyChartBuilder.prototype.buildWatermark = function(maxMin, wmString, wmColor) 189 190 easyChartBuilder.prototype.buildMarkers = function(handle, numGroups) 191 { 192 var markColor = handle["markercolor"]; 193 var markStr = ""; 194 var letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 195 var letterIndex = 0; 196 197 for (var t=0;t<numGroups;t++) 198 { 199 var groupMarkStr = handle["group" + (t+1) + "markers"]; 200 201 if (groupMarkStr == '') 202 { 203 continue; 204 } 205 206 var marks = groupMarkStr.split(","); 207 if (marks.length == 0 || marks == '') 208 { 209 continue; 210 } 211 212 for (var m = 0; m < marks.length; m++) 213 { 214 var prep = "y;s=map_xpin_letter;d=pin_sright," + letter.charAt(letterIndex) + "," + markColor + 215 ";dp=" + marks[m] + ";ds="+t+";of=12,0"; 216 217 if (letterIndex) 218 { 219 markStr = markStr + "|" + prep; 220 } 221 else 222 { 223 markStr = "&chem=" + prep; 224 } 225 226 letterIndex++; 227 } 228 } 229 230 return markStr; 231 }; 232 233 easyChartBuilder.prototype.buildWatermark = function(maxMin, wmString, wmColor, minAxis) 291 234 { 292 235 var wm = new Array(); … … 301 244 if (wm.length == 1) 302 245 wm[1] = maxMin[1]; 303 246 247 var maxit = maxMin[0]; 248 249 if (minAxis != "") 250 { 251 var lowValue = parseFloat(minAxis); 252 253 if (wm[0] <= lowValue) 254 {wm[0] = 0.0;} 255 else 256 {wm[0] -= lowValue;} 257 if (wm[1] <= lowValue) 258 {wm[1] = 0.0;} 259 else 260 {wm[1] -= lowValue;} 261 262 if (maxit <= lowValue) 263 {maxit = 0.0;} 264 else 265 {maxit -= lowValue;} 266 } 267 304 268 // Normalize watermarks 305 var size = maxMin[0] - maxMin[1]; 306 307 wm[0] = wm[0] / maxMin[0]; 308 wm[1] = wm[1] / maxMin[0]; 269 wm[0] = wm[0] / maxit; 270 wm[1] = wm[1] / maxit; 309 271 var trimMe = new Number(wm[0]); 310 272 wm[0] = trimMe.toPrecision(2); 311 273 trimMe = new Number(wm[1]); 312 274 wm[1] = trimMe.toPrecision(2); 313 275 314 276 return "&chm=r," + wmColor + ",0," + wm[0] + "," + wm[1]; 315 277 } … … 452 414 if (hasAxis == true && minAxis != "") 453 415 { 454 var lowValue = parse Int(minAxis);416 var lowValue = parseFloat(minAxis); 455 417 456 418 for (t = 0; t < len; t++) … … 567 529 this.pieChart(chartId, imgId, new_width, new_height, chartHandle); 568 530 } 531 else 532 { 533 this.groupChart(chartType, chartId, imgId, new_width, new_height, chartHandle); 534 } 535 536 /* 569 537 else if (chartType == "vertbar") 570 538 { … … 584 552 imgId.src = "NO_VALID_CHART_TYPE"; 585 553 } 554 */ 586 555 }; 587 556 -
easy-chart-builder/trunk/readme.txt
r202637 r208040 5 5 Tags: chart,graph,charts,graphs,line,review,rating,comparison,mobile,shortcode,dyerware 6 6 Requires at least: 2.8 7 Tested up to: 2.9. 18 Stable tag: 0. 77 Tested up to: 2.9.2 8 Stable tag: 0.8 9 9 10 10 This plugin allows you to easily create charts within your blog by use of shortcodes. … … 13 13 == Description == 14 14 15 This plugin allows you to easily insert charts into your blog, making use shortcodes. While multipurpose, the chart system is intended to make it easy for posting detailed review measurements of some sort, such as video card comparisons. You specify the names of the devices being measured, the tests performed, and each device's measurements for said test.15 This plugin allows you to easily insert charts into your blog, by way of shortcodes. While multipurpose, the chart system is intended to make it easy for posting detailed review measurements of some sort, such as poll data, video card comparisons, sports scores, etc. You specify the names of the devices being measured, the tests performed, and each device's measurements for said test. 16 16 17 17 The shortcode is supported on posts, pages, and in widgets. … … 19 19 Graphs scale to meet the size of the end-user client display, and support mobile displays such as those rendered by the wptouch plugin. 20 20 21 Charts supported are horizontal bar, vertical bar, line graph, and pie. More can be added if desired.21 Charts supported are horizontal bar, stacked horizontal bar, vertical bar, stacked vertical bar, line graph, and pie. More can be added if desired. 22 22 23 23 PHP5 Required. … … 63 63 6. The line chart sans data table (colors are configurable) 64 64 65 7. Marker shown. You can add markers on datapoints for discussion 66 65 67 66 68 == Upgrade Notice == 69 70 = 0.8 = 71 Markers, two new chart types, and bugfixes 67 72 68 73 = 0.7 = … … 80 85 81 86 == Changelog == 87 88 = 0.8 = 89 * New: Two new chart types (horizbarstack and vertbarstack) 90 * New: Markers. Place one or more marker in the graph. 91 * Linecharts now work with clipping 92 * Watermark bug with clipping fixed 93 * Smaller javascript component for faster loading 82 94 83 95 = 0.7 =
Note: See TracChangeset
for help on using the changeset viewer.