| Conditions | 13 |
| Paths | 20 |
| Total Lines | 132 |
| Code Lines | 47 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 177 | public function build_graph() { |
||
| 178 | |||
| 179 | $yaxis_count = 1; |
||
| 180 | |||
| 181 | $this->load_scripts(); |
||
| 182 | |||
| 183 | ob_start(); |
||
| 184 | ?> |
||
| 185 | <script type="text/javascript"> |
||
| 186 | |||
| 187 | jQuery( document ).ready( function ( $ ) { |
||
| 188 | $.plot( |
||
| 189 | $( "#give-graph-<?php echo $this->id; ?>" ), |
||
| 190 | [ |
||
| 191 | <?php |
||
| 192 | $order = 0; |
||
| 193 | foreach( $this->get_data() as $label => $data ) : |
||
| 194 | ?> |
||
| 195 | { |
||
| 196 | label : "<?php echo esc_attr( $label ); ?>", |
||
| 197 | id : "<?php echo sanitize_key( $label ); ?>", |
||
| 198 | dataType : '<?php echo ( ! empty( $this->options['dataType'][$order] ) ? $this->options['dataType'][$order] : 'count' ); ?>', |
||
| 199 | // data format is: [ point on x, value on y ] |
||
| 200 | data : [<?php foreach( $data as $point ) { echo '[' . implode( ',', $point ) . '],'; } ?>], |
||
| 201 | points: { |
||
| 202 | show: <?php echo $this->options['points'] ? 'true' : 'false'; ?>, |
||
| 203 | }, |
||
| 204 | bars : { |
||
| 205 | show : <?php echo $this->options['bars'] ? 'true' : 'false'; ?>, |
||
| 206 | barWidth: 100, |
||
| 207 | order: <?php echo $order++; ?>, |
||
| 208 | align : 'center' |
||
| 209 | }, |
||
| 210 | lines : { |
||
| 211 | show : <?php echo $this->options['lines'] ? 'true' : 'false'; ?>, |
||
| 212 | fill : true, |
||
| 213 | fillColor: {colors: [{opacity: 0.4}, {opacity: 0.1}]} |
||
| 214 | }, |
||
| 215 | <?php if( $this->options[ 'multiple_y_axes' ] ) : ?> |
||
| 216 | yaxis : <?php echo $yaxis_count; ?> |
||
| 217 | <?php endif; ?> |
||
| 218 | |||
| 219 | }, |
||
| 220 | |||
| 221 | <?php $yaxis_count++; endforeach; ?> |
||
| 222 | |||
| 223 | ], |
||
| 224 | { |
||
| 225 | // Options |
||
| 226 | grid: { |
||
| 227 | show : true, |
||
| 228 | aboveData : false, |
||
| 229 | color : "<?php echo $this->options[ 'color' ]; ?>", |
||
| 230 | backgroundColor: "<?php echo $this->options[ 'bgcolor' ]; ?>", |
||
| 231 | borderColor : "<?php echo $this->options[ 'bordercolor' ]; ?>", |
||
| 232 | borderWidth : <?php echo absint( $this->options[ 'borderwidth' ] ); ?>, |
||
| 233 | clickable : false, |
||
| 234 | hoverable : true |
||
| 235 | }, |
||
| 236 | |||
| 237 | colors: ["#66bb6a", "#546e7a"], //Give Colors |
||
| 238 | |||
| 239 | xaxis: { |
||
| 240 | mode : "<?php echo $this->options['x_mode']; ?>", |
||
| 241 | timeFormat : "<?php echo $this->options['x_mode'] == 'time' ? $this->options['time_format'] : ''; ?>", |
||
| 242 | tickSize : "<?php echo $this->options['x_mode'] == 'time' ? '' : 1; ?>", |
||
| 243 | <?php if( $this->options['x_mode'] != 'time' ) : ?> |
||
| 244 | tickDecimals: <?php echo $this->options['x_decimals']; ?> |
||
| 245 | <?php endif; ?> |
||
| 246 | }, |
||
| 247 | yaxis: { |
||
| 248 | position : 'right', |
||
| 249 | min : 0, |
||
| 250 | mode : "<?php echo $this->options['y_mode']; ?>", |
||
| 251 | timeFormat : "<?php echo $this->options['y_mode'] == 'time' ? $this->options['time_format'] : ''; ?>", |
||
| 252 | <?php if( $this->options['y_mode'] != 'time' ) : ?> |
||
| 253 | tickDecimals: <?php echo $this->options['y_decimals']; ?> |
||
| 254 | <?php endif; ?> |
||
| 255 | } |
||
| 256 | } |
||
| 257 | ); |
||
| 258 | |||
| 259 | function give_flot_tooltip( x, y, contents ) { |
||
| 260 | $( '<div id="give-flot-tooltip">' + contents + '</div>' ).css( { |
||
| 261 | position : 'absolute', |
||
| 262 | display : 'none', |
||
| 263 | top : y + 5, |
||
| 264 | left : x + 5, |
||
| 265 | border : '1px solid #fdd', |
||
| 266 | padding : '2px', |
||
| 267 | 'background-color': '#fee', |
||
| 268 | opacity : 0.80 |
||
| 269 | } ).appendTo( "body" ).fadeIn( 200 ); |
||
| 270 | } |
||
| 271 | |||
| 272 | var previousPoint = null; |
||
| 273 | $( "#give-graph-<?php echo $this->id; ?>" ).bind( "plothover", function ( event, pos, item ) { |
||
| 274 | |||
| 275 | $( "#x" ).text( pos.x.toFixed( 2 ) ); |
||
| 276 | $( "#y" ).text( pos.y.toFixed( 2 ) ); |
||
| 277 | if ( item ) { |
||
| 278 | if ( previousPoint !== item.dataIndex ) { |
||
| 279 | previousPoint = item.dataIndex; |
||
| 280 | $( "#give-flot-tooltip" ).remove(); |
||
| 281 | var x = item.datapoint[0].toFixed( 2 ), |
||
| 282 | y = accounting.formatMoney( item.datapoint[1].toFixed( give_vars.currency_decimals ), '', give_vars.currency_decimals, give_vars.thousands_separator, give_vars.decimal_separator ); |
||
| 283 | |||
| 284 | if ( item.series.dataType.length && item.series.dataType === 'amount' ) { |
||
| 285 | |||
| 286 | if ( give_vars.currency_pos === 'before' ) { |
||
| 287 | |||
| 288 | give_flot_tooltip( item.pageX, item.pageY, item.series.label + ' ' + give_vars.currency_sign + y ); |
||
| 289 | } else { |
||
| 290 | give_flot_tooltip( item.pageX, item.pageY, item.series.label + ' ' + y + give_vars.currency_sign ); |
||
| 291 | } |
||
| 292 | } else { |
||
| 293 | give_flot_tooltip( item.pageX, item.pageY, item.series.label + ' ' + parseInt( y ) ); |
||
| 294 | } |
||
| 295 | } |
||
| 296 | } else { |
||
| 297 | $( "#give-flot-tooltip" ).remove(); |
||
| 298 | previousPoint = null; |
||
| 299 | } |
||
| 300 | } ); |
||
| 301 | |||
| 302 | } ); |
||
| 303 | |||
| 304 | </script> |
||
| 305 | <div id="give-graph-<?php echo $this->id; ?>" class="give-graph" style="height: 300px;"></div> |
||
| 306 | <?php |
||
| 307 | return ob_get_clean(); |
||
| 308 | } |
||
| 309 | |||
| 339 |