Ad::getImg()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
ccs 0
cts 4
cp 0
cc 3
nc 2
nop 0
crap 12
1
<?php
2
3
namespace zacksleo\yii2\ad\models;
4
5
use Yii;
6
use yii\helpers\Url;
7
use zacksleo\yii2\ad\Module;
8
use zacksleo\yii2\gallery\behaviors\UploadImageBehavior;
9
use yii\db\ActiveRecord;
10
11
/**
12
 * This is the model class for table "{{%ad}}".
13
 *
14
 * @property integer $id
15
 * @property integer $position_id
16
 * @property string $name
17
 * @property string $img
18
 * @property string $text
19
 * @property integer $type
20
 * @property string $url
21
 * @property integer $status
22
 * @property integer $order
23
 * @property integer $available_from
24
 * @property integer $available_to
25
 */
26
class Ad extends ActiveRecord
27
{
28
    const STATUS_ACTIVE = 1;
29
    const STATUS_INACTIVE = 0;
30
31
    /**
32
     * @inheritdoc
33
     */
34 4
    public static function tableName()
35
    {
36 4
        return '{{%ad}}';
37
    }
38
39
    /**
40
     * @inheritdoc
41
     */
42 4
    public function rules()
43
    {
44
        return [
45 4
            [['position_id', 'name'], 'required'],
46
            [['position_id', 'type', 'status', 'order'], 'integer'],
47
            [['text'], 'string'],
48
            [['name', 'url', 'img'], 'string', 'max' => 255],
49
            [['available_from', 'available_to'], 'date', 'format' => 'yyyy-MM-dd HH:mm'],
50
        ];
51
    }
52
53
    /**
54
     * @inheritdoc
55
     */
56 4
    public function behaviors()
57
    {
58
        return [
59
            'fileBehavior' => [
60 4
                'class' => \nemmo\attachments\behaviors\FileBehavior::className()
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
61
            ]
62
        ];
63
    }
64
65
    /**
66
     * @inheritdoc
67
     */
68 1
    public function attributeLabels()
69
    {
70
        return [
71 1
            'id' => Module::t('ad', 'ID'),
72 1
            'position_id' => Module::t('ad', 'Position ID'),
73 1
            'name' => Module::t('ad', 'Name'),
74 1
            'img' => Module::t('ad', 'Image'),
75 1
            'text' => Module::t('ad', 'Text'),
76 1
            'type' => Module::t('ad', 'Type'),
77 1
            'url' => Module::t('ad', 'Url'),
78 1
            'status' => Module::t('ad', 'Status'),
79 1
            'order' => Module::t('ad', 'Order'),
80 1
            'available_from' => Module::t('ad', 'AvailableFrom'),
81 1
            'available_to' => Module::t('ad', 'AvailableTo'),
82
        ];
83
    }
84
85
    public function fields()
86
    {
87
        return [
88
            'id',
89
            'name',
90
            'order',
91
            'url',
92
            'img' => function () {
93
                if ($this->files && $this->files[0] instanceof \nemmo\attachments\models\File) {
0 ignored issues
show
Documentation introduced by
The property files does not exist on object<zacksleo\yii2\ad\models\Ad>. Since you implemented __get, maybe consider adding a @property annotation.

Since your code implements the magic getter _get, this function will be called for any read access on an undefined variable. You can add the @property annotation to your class or interface to document the existence of this variable.

<?php

/**
 * @property int $x
 * @property int $y
 * @property string $text
 */
class MyLabel
{
    private $properties;

    private $allowedProperties = array('x', 'y', 'text');

    public function __get($name)
    {
        if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
            return $properties[$name];
        } else {
            return null;
        }
    }

    public function __set($name, $value)
    {
        if (in_array($name, $this->allowedProperties)) {
            $properties[$name] = $value;
        } else {
            throw new \LogicException("Property $name is not defined.");
        }
    }

}

If the property has read access only, you can use the @property-read annotation instead.

Of course, you may also just have mistyped another name, in which case you should fix the error.

See also the PhpDoc documentation for @property.

Loading history...
94
                    return getenv('BASE_URL') . $this->files[0]->getUrl();
0 ignored issues
show
Documentation introduced by
The property files does not exist on object<zacksleo\yii2\ad\models\Ad>. Since you implemented __get, maybe consider adding a @property annotation.

Since your code implements the magic getter _get, this function will be called for any read access on an undefined variable. You can add the @property annotation to your class or interface to document the existence of this variable.

<?php

/**
 * @property int $x
 * @property int $y
 * @property string $text
 */
class MyLabel
{
    private $properties;

    private $allowedProperties = array('x', 'y', 'text');

    public function __get($name)
    {
        if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
            return $properties[$name];
        } else {
            return null;
        }
    }

    public function __set($name, $value)
    {
        if (in_array($name, $this->allowedProperties)) {
            $properties[$name] = $value;
        } else {
            throw new \LogicException("Property $name is not defined.");
        }
    }

}

If the property has read access only, you can use the @property-read annotation instead.

Of course, you may also just have mistyped another name, in which case you should fix the error.

See also the PhpDoc documentation for @property.

Loading history...
95
                }
96
                return 'https://ws1.sinaimg.cn/large/a76d6e45gy1fj5d3ckxgej205x05vaa4.jpg';
97
            }
98
        ];
99
    }
100
101
    public function getImg()
102
    {
103
        if ($this->files && $this->files[0] instanceof \nemmo\attachments\models\File) {
0 ignored issues
show
Documentation introduced by
The property files does not exist on object<zacksleo\yii2\ad\models\Ad>. Since you implemented __get, maybe consider adding a @property annotation.

Since your code implements the magic getter _get, this function will be called for any read access on an undefined variable. You can add the @property annotation to your class or interface to document the existence of this variable.

<?php

/**
 * @property int $x
 * @property int $y
 * @property string $text
 */
class MyLabel
{
    private $properties;

    private $allowedProperties = array('x', 'y', 'text');

    public function __get($name)
    {
        if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
            return $properties[$name];
        } else {
            return null;
        }
    }

    public function __set($name, $value)
    {
        if (in_array($name, $this->allowedProperties)) {
            $properties[$name] = $value;
        } else {
            throw new \LogicException("Property $name is not defined.");
        }
    }

}

If the property has read access only, you can use the @property-read annotation instead.

Of course, you may also just have mistyped another name, in which case you should fix the error.

See also the PhpDoc documentation for @property.

Loading history...
104
            return $this->files[0]->getUrl();
0 ignored issues
show
Documentation introduced by
The property files does not exist on object<zacksleo\yii2\ad\models\Ad>. Since you implemented __get, maybe consider adding a @property annotation.

Since your code implements the magic getter _get, this function will be called for any read access on an undefined variable. You can add the @property annotation to your class or interface to document the existence of this variable.

<?php

/**
 * @property int $x
 * @property int $y
 * @property string $text
 */
class MyLabel
{
    private $properties;

    private $allowedProperties = array('x', 'y', 'text');

    public function __get($name)
    {
        if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
            return $properties[$name];
        } else {
            return null;
        }
    }

    public function __set($name, $value)
    {
        if (in_array($name, $this->allowedProperties)) {
            $properties[$name] = $value;
        } else {
            throw new \LogicException("Property $name is not defined.");
        }
    }

}

If the property has read access only, you can use the @property-read annotation instead.

Of course, you may also just have mistyped another name, in which case you should fix the error.

See also the PhpDoc documentation for @property.

Loading history...
105
        }
106
        return 'https://ws1.sinaimg.cn/large/a76d6e45gy1fj5d3ckxgej205x05vaa4.jpg';
107
    }
108
109
    /**
110
     * 状态列表
111
     * @return array
112
     */
113 1
    public static function getStatusList()
114
    {
115
        return [
116 1
            self::STATUS_ACTIVE => Module::t('ad', 'Active'),
117 1
            self::STATUS_INACTIVE => Module::t('ad', 'Inactive'),
118
        ];
119
    }
120
121 1
    public function getAdPosition()
122
    {
123 1
        return $this->hasOne(AdPosition::className(), ['id' => 'position_id']);
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
124
    }
125
126 4
    public function beforeSave($insert)
127
    {
128 4
        $this->available_from = strtotime($this->available_from);
129 4
        $this->available_to = strtotime($this->available_to);
130 4
        return parent::beforeSave($insert);
131
    }
132
}
133