Passed
Push — master ( a8ef92...644c03 )
by Andrey
04:11
created

ThumbnailTrait::getDefaultThumbUrl()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 3
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 7
rs 10
1
<?php
2
3
namespace app\traits;
4
5
use yii\helpers\Html;
6
use yii\db\ActiveRecord;
7
use Itstructure\MFUploader\Module as MFUModule;
8
use Itstructure\MFUploader\models\{Mediafile, OwnerMediafile};
9
10
/**
11
 * Class ThumbnailTrait
12
 *
13
 * @package app\traits
14
 */
15
trait ThumbnailTrait
16
{
17
    /**
18
     * @var array|null|ActiveRecord|Mediafile
19
     */
20
    protected $thumbnailModel;
21
22
    /**
23
     * Get album thumb image.
24
     *
25
     * @param array  $options
26
     *
27
     * @return mixed
28
     */
29
    public function getDefaultThumbImage(array $options = [])
30
    {
31
        $url = $this->getDefaultThumbUrl();
32
33
        if (empty($url)) {
34
            return null;
35
        }
36
37
        if (empty($options['alt'])) {
38
            $options['alt'] = $this->thumbnailModel->alt;
39
        }
40
41
        return Html::img($url, $options);
42
    }
43
44
    /**
45
     * Get default url to thumbnail file.
46
     *
47
     * @return null|string
48
     */
49
    public function getDefaultThumbUrl()
50
    {
51
        if (null == $this->getThumbnailModel()){
52
            return null;
53
        }
54
55
        return $this->thumbnailModel->getThumbUrl(MFUModule::THUMB_ALIAS_DEFAULT);
0 ignored issues
show
Bug introduced by
The method getThumbUrl() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

55
        return $this->thumbnailModel->/** @scrutinizer ignore-call */ getThumbUrl(MFUModule::THUMB_ALIAS_DEFAULT);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
56
    }
57
58
    /**
59
     * Get model's thumbnail.
60
     *
61
     * @return array|null|\yii\db\ActiveRecord|Mediafile
62
     */
63
    public function getThumbnailModel()
64
    {
65
        if (null === $this->id) {
66
            return null;
67
        }
68
69
        if ($this->thumbnailModel == null) {
70
            $this->thumbnailModel = OwnerMediafile::getOwnerThumbnail($this->tableName(), $this->id);
0 ignored issues
show
Bug introduced by
It seems like tableName() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

70
            $this->thumbnailModel = OwnerMediafile::getOwnerThumbnail($this->/** @scrutinizer ignore-call */ tableName(), $this->id);
Loading history...
71
        }
72
73
        return $this->thumbnailModel;
74
    }
75
}