Conditions | 15 |
Paths | 26 |
Total Lines | 61 |
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 |
||
20 | function add_retina_attributes($attr, $args, $attachment) { |
||
21 | global $current_foogallery; |
||
22 | |||
23 | if ( $current_foogallery && $current_foogallery->gallery_template ) { |
||
24 | |||
25 | //first check if the gallery has saved Retina settings |
||
26 | if ( isset($current_foogallery->retina) && is_array( $current_foogallery->retina ) ) { |
||
27 | $srcset = array(); |
||
28 | |||
29 | //get the original thumb dimensions |
||
30 | $original_thumb_width = array_key_exists( 'width', $args ) ? intval( $args['width'] ) : 0; |
||
31 | $original_thumb_height = array_key_exists( 'height', $args ) ? intval( $args['height'] ) : 0; |
||
32 | |||
33 | //get the original full size image dimensions |
||
34 | $original_width = $attachment->width; |
||
35 | $original_height = $attachment->height; |
||
36 | |||
37 | //if we do not have a width, we need to calculate one |
||
38 | if ( 0 === $original_thumb_width ) { |
||
39 | //find closest ratio multiple to image size |
||
40 | if( $original_width > $original_height ) { |
||
41 | //landscape |
||
42 | $ratio = $original_width / $original_height; |
||
43 | $original_thumb_width = intval( $original_thumb_height * $ratio ); |
||
44 | }else{ |
||
45 | //portrait |
||
46 | $ratio = $original_height / $original_width; |
||
47 | $original_thumb_width = intval( $original_thumb_height / $ratio ); |
||
48 | } |
||
49 | } |
||
50 | |||
51 | foreach ( foogallery_retina_options() as $pixel_density ) { |
||
52 | $pixel_density_supported = array_key_exists( $pixel_density, $current_foogallery->retina ) ? ('true' === $current_foogallery->retina[$pixel_density]) : false; |
||
53 | |||
54 | if ( $pixel_density_supported ) { |
||
55 | $pixel_density_int = intval( str_replace( 'x', '', $pixel_density ) ); |
||
56 | |||
57 | //apply scaling to the width and height attributes |
||
58 | $retina_width = $original_thumb_width * $pixel_density_int; |
||
59 | $retina_height = $original_thumb_height * $pixel_density_int; |
||
60 | |||
61 | //if the new dimensions are smaller than the full size image dimensions then allow the retina thumb |
||
62 | if ( $retina_width < $original_width && |
||
63 | $retina_height < $original_height ) { |
||
64 | $args['width'] = $retina_width; |
||
65 | $args['height'] = $retina_height; |
||
66 | |||
67 | //build up the retina attributes |
||
68 | $srcset[] = $attachment->html_img_src( $args ) . ' ' . $retina_width . 'w'; |
||
69 | } |
||
70 | } |
||
71 | } |
||
72 | |||
73 | if ( count( $srcset ) ) { |
||
74 | $attr['srcset'] = implode( ',', $srcset ); |
||
75 | } |
||
76 | } |
||
77 | } |
||
78 | |||
79 | return $attr; |
||
80 | } |
||
81 | } |
||
83 |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.