Completed
Push — master ( ed853f...4e7321 )
by zacksleo
11s queued 10s
created

Ad::getImg()   A

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
 */
24
class Ad extends ActiveRecord
25
{
26
    const STATUS_ACTIVE = 1;
27
    const STATUS_INACTIVE = 0;
28
29
    /**
30
     * @inheritdoc
31
     */
32 4
    public static function tableName()
33
    {
34 4
        return '{{%ad}}';
35
    }
36
37
    /**
38
     * @inheritdoc
39
     */
40 4
    public function rules()
41
    {
42
        return [
43 4
            [['position_id', 'name'], 'required'],
44
            [['position_id', 'type', 'status', 'order'], 'integer'],
45
            [['text'], 'string'],
46
            [['name', 'url', 'img'], 'string', 'max' => 255],
47
        ];
48
    }
49
50
    /**
51
     * @inheritdoc
52
     */
53 4
    public function behaviors()
54
    {
55
        return [
56
            'fileBehavior' => [
57 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...
58
            ]
59
        ];
60
    }
61
62
    /**
63
     * @inheritdoc
64
     */
65 1
    public function attributeLabels()
66
    {
67
        return [
68 1
            'id' => Module::t('ad', 'ID'),
69 1
            'position_id' => Module::t('ad', 'Position ID'),
70 1
            'name' => Module::t('ad', 'Name'),
71 1
            'img' => Module::t('ad', 'Image'),
72 1
            'text' => Module::t('ad', 'Text'),
73 1
            'type' => Module::t('ad', 'Type'),
74 1
            'url' => Module::t('ad', 'Url'),
75 1
            'status' => Module::t('ad', 'Status'),
76 1
            'order' => Module::t('ad', 'Order'),
77
        ];
78
    }
79
80
    public function fields()
81
    {
82
        return [
83
            'id',
84
            'name',
85
            'order',
86
            'url',
87
            'img' => function () {
88
                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...
89
                    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...
90
                }
91
                return 'https://ws1.sinaimg.cn/large/a76d6e45gy1fj5d3ckxgej205x05vaa4.jpg';
92
            }
93
        ];
94
    }
95
96
    public function getImg()
97
    {
98
        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...
99
            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...
100
        }
101
        return 'https://ws1.sinaimg.cn/large/a76d6e45gy1fj5d3ckxgej205x05vaa4.jpg';
102
    }
103
104
    /**
105
     * 状态列表
106
     * @return array
107
     */
108 1
    public static function getStatusList()
109
    {
110
        return [
111 1
            self::STATUS_ACTIVE => Module::t('ad', 'Active'),
112 1
            self::STATUS_INACTIVE => Module::t('ad', 'Inactive'),
113
        ];
114
    }
115
116 1
    public function getAdPosition()
117
    {
118 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...
119
    }
120
}
121