acf
This commit is contained in:
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
namespace NRFramework\Widgets;
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
|
||||
class SelfHostedVideo extends Video
|
||||
{
|
||||
/**
|
||||
* Widget default options
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $video_widget_options = [
|
||||
/**
|
||||
* Specify how the video should be loaded when the page loads.
|
||||
*
|
||||
* Allowed values:
|
||||
* - metadata
|
||||
* - auto
|
||||
* - none
|
||||
*/
|
||||
'preload' => 'auto',
|
||||
|
||||
// Whether to mute the video
|
||||
'mute' => false,
|
||||
|
||||
// Whether to display controls on the video
|
||||
'controls' => true,
|
||||
|
||||
// Whether to loop the video
|
||||
'loop' => false,
|
||||
|
||||
// Stores the given video details
|
||||
'video' => ''
|
||||
];
|
||||
|
||||
protected function prepare()
|
||||
{
|
||||
if (isset($this->options['value']) && !empty($this->options['value']))
|
||||
{
|
||||
$videos = \NRFramework\Helpers\File::getFileSources($this->options['value'], ['mp4', 'webm', 'ogg', 'mov']);
|
||||
$this->options['video'] = is_array($videos) && isset($videos[0]) ? $videos[0] : false;
|
||||
}
|
||||
|
||||
$atts = [
|
||||
'data-video-id="' . $this->options['value'] . '"',
|
||||
'data-video-type="selfhostedvideo"',
|
||||
'data-video-mute="' . var_export($this->options['mute'], true) . '"',
|
||||
'data-video-controls="' . var_export($this->options['controls'], true) . '"',
|
||||
'data-video-loop="' . var_export($this->options['loop'], true) . '"',
|
||||
'data-video-autoplay="' . var_export($this->options['autoplay'], true) . '"',
|
||||
'data-video-autopause="' . var_export($this->options['autopause'], true) . '"',
|
||||
];
|
||||
|
||||
$this->options['atts'] = implode(' ', $atts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads media files
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function videoAssets()
|
||||
{
|
||||
HTMLHelper::script('plg_system_nrframework/widgets/video/selfhostedvideo.js', ['relative' => true, 'version' => 'auto']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user