namespace App\SubForms\Link;
use App\Fluidbook\Link\Link;
+use App\SubForms\VideoTrack;
+use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple;
use Cubist\Backpack\Magic\Fields\CheckboxBasic;
use Cubist\Backpack\Magic\Fields\FilesOrURL;
+use Cubist\Backpack\Magic\Fields\FormSection;
// __('!! Editeur de liens')
class Video extends Base
public function addDestinationField()
{
+ VideoTrack::$_filesOrURLAttributes = $this->getFilesOrURLEntry();
+
$this->addField('to', FilesOrURL::class, __('Fichier vidéo'), $this->getFilesOrURLEntry() + ['accept' => self::$_acceptVideo]);
- $this->addField('tracks', FilesOrURL::class, __('Sous-titres'), $this->getFilesOrURLEntry() + ['accept' => self::$_acceptSubtitles]);
}
public function addMultimediaFields()
$this->addField('video_loop', CheckboxBasic::class, __('Jouer la vidéo en boucle'), ['default' => false]);
$this->addMultimediaSizeFields();
+
+ $this->addField('header_tracks', FormSection::class, __('Pistes de sous-titres, descriptions et chapitres'));
+ $this->addField('tracks', BunchOfFieldsMultiple::class, '', ['bunch' => VideoTrack::class, 'add_label' => __('Ajouter une piste'),'edit_label'=>'%kind : %label']);
}
}
--- /dev/null
+<?php
+
+namespace App\SubForms;
+
+use Cubist\Backpack\Magic\Fields\FilesOrURL;
+use Cubist\Backpack\Magic\Fields\Locale;
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Fields\Text;
+use Cubist\Backpack\Magic\SubForm;
+
+class VideoTrack extends SubForm
+{
+ public static $_filesOrURLAttributes = [];
+
+ public function init()
+ {
+ parent::init();
+
+ $this->addField('label', Text::class, __('Label'),['hint'=>__('Texte affiché dans le lecteur vidéo pour désigner la piste. (Recommandé)')]);
+ $this->addField('file', FilesOrURL::class, __('Fichier'), self::$_filesOrURLAttributes + ['accept' => ['.vtt']]);
+ $this->addField('kind', SelectFromArray::class, __('Type'), ['default' => 'captions', 'allows_null' => false, 'ajax' => false, 'options' => ['captions' => 'Captions', 'subtitles' => 'Subtitles', 'descriptions' => 'Descriptions', 'chapters' => 'Chapters']]);
+ $this->addField('srclang', Locale::class, __('Langue'), ['allows_null' => true, 'ajax' => false, 'hint' => __('Laisser vide pour utiliser la langue de la publication')]);;
+ }
+
+
+}