portal.mkgtu.ru/backend/models/MainPageInstructionVideo.php

152 lines
3.3 KiB
PHP
Raw Normal View History

2024-03-28 09:51:45 +03:00
<?php
namespace backend\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveQuery;
use yii\web\UploadedFile;
class MainPageInstructionVideo extends MainPageInstructionFile
{
public const ACCEPT_FILE_EXTENSIONS = '3gp, avi, flv, gvi, m2v, m4v, mkv, mov, mp4, mpg, ogv, webm, wmv, mpeg';
public static function tableName()
{
return '{{%main_page_instruction_video}}';
}
public function rules()
{
return array_merge(
[
[
[
'width',
'height',
'created_at',
'updated_at',
'main_page_setting_id',
],
'default',
'value' => null
],
[
[
'width',
'height',
'created_at',
'updated_at',
'main_page_setting_id',
],
'integer'
],
[
[
'autoplay',
'muted',
'loop',
],
'default',
'value' => false
],
[
[
'autoplay',
'muted',
'loop',
],
'boolean'
],
[
['main_page_setting_id'],
'exist',
'skipOnError' => true,
'targetClass' => MainPageSetting::class,
'targetAttribute' => ['main_page_setting_id' => 'id']
],
],
parent::rules()
);
}
public function behaviors()
{
return [TimestampBehavior::class];
}
public function attributeLabels()
{
return [
'width' => Yii::t('backend', 'Ширина'),
'height' => Yii::t('backend', 'Высота'),
'file' => Yii::t('backend', 'Видео'),
'loop' => Yii::t('backend', 'Цикличное воспроизведение'),
'autoplay' => Yii::t('backend', 'Автоматически воспроизводить видео'),
'muted' => Yii::t('backend', 'По умолчанию видео воспроизводится без звука'),
];
}
public function getMainPageSetting()
{
return $this->hasOne(MainPageSetting::class, ['id' => 'main_page_setting_id']);
}
public function getViewFileName(): string
{
return '_instruction_point_video';
}
public function buildAdditionalHtmlAttributes(): string
{
$buildAttributes = ['loop', 'muted', 'autoplay'];
$additionalAttributes = '';
foreach ($buildAttributes as $buildAttribute) {
if ($this->{$buildAttribute}) {
$additionalAttributes .= "{$buildAttribute} ";
}
}
return $additionalAttributes;
}
}