Completed
Push — master ( c2c4d4...17339d )
by Davide
03:00
created

LaravelJumbotronImages::getParametersArray()   C

Complexity

Conditions 11
Paths 160

Size

Total Lines 50
Code Lines 33

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 27
CRAP Score 11.727

Importance

Changes 0
Metric Value
cc 11
eloc 33
nc 160
nop 1
dl 0
loc 50
ccs 27
cts 33
cp 0.8182
crap 11.727
rs 6.8166
c 0
b 0
f 0

How to fix   Complexity   

Long Method

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:

1
<?php
2
3
namespace DavideCasiraghi\LaravelJumbotronImages;
4
5
use DavideCasiraghi\LaravelJumbotronImages\Models\JumbotronImage;
6
7
class LaravelJumbotronImages
8
{
9
    /**
10
     * Return a random quote.
11
     *
12
     * @return \DavideCasiraghi\LaravelJumbotronImages\Models\JumbotronImage
13
     */
14 1
    public function getJumbotronImage($jumbotronImageId)
15
    {
16 1
        $jumbotronImage = JumbotronImage::find($jumbotronImageId);
17 1
        $jumbotronImage->parameters = $this->getParametersArray($jumbotronImage);
0 ignored issues
show
Bug introduced by
The property parameters does not seem to exist on DavideCasiraghi\LaravelJ...s\Models\JumbotronImage. Are you sure there is no database migration missing?

Checks if undeclared accessed properties appear in database migrations and if the creating migration is correct.

Loading history...
18
19 1
        $ret = $jumbotronImage;
20
21 1
        return $ret;
22
    }
23
24
    /*****************************/
25
26
    /**
27
     * Show a Jumbotron Image.
28
     *
29
     * @return \DavideCasiraghi\LaravelJumbotronImages\Models\JumbotronImage
30
     */
31
    public function showJumbotronImage($jumbotronImageId)
32
    {
33
        $jumbotronImage = JumbotronImage::find($jumbotronImageId);
34
        $jumbotronImage->parameters = $this->getParametersArray($jumbotronImage);
0 ignored issues
show
Bug introduced by
The property parameters does not seem to exist on DavideCasiraghi\LaravelJ...s\Models\JumbotronImage. Are you sure there is no database migration missing?

Checks if undeclared accessed properties appear in database migrations and if the creating migration is correct.

Loading history...
35
36
        return view('laravel-jumbotron-images::jumbotronImages.show', compact('jumbotronImage'));
37
    }
38
39
    /***************************************************************************/
40
41
    /**
42
     * Attach to the jumbotron image object an array with the parameters for the show-jumbotron-image view.
43
     *
44
     * @return array
45
     */
46 2
    public static function getParametersArray($jumbotronImage)
47
    {
48
        $ret = [
49 2
             'cover_opacity' => 'opacity: '.$jumbotronImage->cover_opacity.';',
50 2
             'background_color' => 'background: #'.$jumbotronImage->background_color.';',
51 2
             'image' => 'background-image:url(/storage/images/jumbotron_images/'.$jumbotronImage->image_file_name.');',
52
         ];
53
54
        /* Parallax - The element is defined with stellar plugin like: <section class="parallax" data-stellar-background-ratio="0.5" ><span>Summer</span></section>*/
55 2
        if ($jumbotronImage->parallax == 1) {
56 1
            $ret['parallax'] = ' parallax';
57 1
            $ret['parallax_ratio'] = "data-stellar-background-ratio='0.5'";
58
        }
59
60 2
        if ($jumbotronImage->white_moon == 1) {
61 1
            $ret['white_moon'] = ' moon-curve ';
62
        }
63
64
        /* Scroll down arrow */
65 2
        if ($jumbotronImage->scroll_down_arrow == 1) {
66 1
            $ret['scroll_down_arrow'] = "<div class='scroll-arrow white'><span>SCROLL DOWN</span><img src='/vendor/laravel-jumbotron-images/assets/images/angle-down-regular.svg'></div>";
67
        }
68
69 2
        switch ($jumbotronImage->text_horizontal_alignment) {
70 2
            case 0:
71 1
                $ret['text_horizontal_alignment'] = 'text-align: left;';
72 1
                break;
73 1
            case 1:
74 1
                $ret['text_horizontal_alignment'] = 'text-align: center;';
75 1
                break;
76
            case 2:
77
                $ret['text_horizontal_alignment'] = 'text-align: right;';
78
                break;
79
        }
80
81 2
        if ($jumbotronImage->text_width != 100) {
82 2
            switch ($jumbotronImage->text_horizontal_alignment) {
83 2
                case 0:	// Left
84 1
                    $ret['text_width'] = 'width: '.$jumbotronImage->text_width.'%;';
85 1
                break;
86 1
                case 1: // Center
87 1
                    $ret['text_width'] = 'width: '.$jumbotronImage->text_width.'%; margin: auto;';
88 1
                break;
89
                case 2: // Right
90
                    $ret['text_width'] = 'width: '.$jumbotronImage->text_width.'%; float: right;';
91
                break;
92
            }
93
        }
94
95 2
        return $ret;
96
    }
97
}
98