class UIkitVideo in UIkit Components 8.3
Provides a render element for the Video component.
Properties:
- #embed_iframe: The embed code to display the video. This should be the the full embed code from the video's source and contain the
<iframe>
element. The various embed options, such as displaying the video controls, should also be included. If this is set, do not set the #video_sources property.
- #video_sources: An array of full-qualified URLs to the video sources. Each source should have a different video extension to provide a fallback source for browser compatibility. If only one source is provided and the browser does not support the video's file extension, the video will not display. If this is set, do not set the #embed_iframe property.
- #display_controls: A boolean indicating whether to display the controls when the #video_sources property is set. This is ignored if the #embed_iframe property is set.
- #component_options: An array containing the component options to apply to the video. These must be in the form of "option: value" in order to work correctly.
Usage example:
$build['video'] = [
'#type' => 'uikit_video',
'#embed_iframe' => $iframe_embed_code,
'#display_controls' => TRUE,
'#component_options' => [
'autoplay: false',
],
];
Plugin annotation
@RenderElement("uikit_video");
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\uikit_components\Element\UIkitVideo
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of UIkitVideo
See also
template_preprocess_uikit_video()
https://getuikit.com/docs/utility#video
Related topics
File
- src/
Element/ UIkitVideo.php, line 48
Namespace
Drupal\uikit_components\ElementView source
class UIkitVideo extends RenderElement {
/**
* {@inheritdoc}
*/
public function getInfo() {
$class = get_class($this);
return [
'#embed_iframe' => NULL,
'#video_sources' => [],
'#display_controls' => FALSE,
'#component_options' => [],
'#attributes' => new Attribute(),
'#pre_render' => [
[
$class,
'preRenderUIkitVideo',
],
],
'#theme_wrappers' => [
'uikit_video',
],
];
}
/**
* Pre-render callback: Sets the video attributes.
*
* Doing so during pre_render gives modules a chance to alter the video.
*
* @param array $element
* A renderable array.
*
* @return array
* A renderable array.
*/
public static function preRenderUIkitVideo($element) {
// Prepare the component options for the video.
$component_options = '';
if (!empty($element['#component_options'])) {
$component_options = implode('; ', $element['#component_options']);
}
// Set the attributes for the video element.
if (!empty($element['#video_sources'])) {
if ($element['#display_controls']) {
$element['#attributes']
->setAttribute('controls', '');
}
if ($element['#plays_inline']) {
$element['#attributes']
->setAttribute('playsinline', '');
}
}
$element['#attributes']
->setAttribute('data-uk-video', $component_options);
return $element;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
RenderElement:: |
public static | function | Adds Ajax information about an element to communicate with JavaScript. | |
RenderElement:: |
public static | function | Adds members of this group as actual elements for rendering. | |
RenderElement:: |
public static | function | Form element processing handler for the #ajax form property. | 1 |
RenderElement:: |
public static | function | Arranges elements into groups. | |
RenderElement:: |
public static | function |
Sets a form element's class attribute. Overrides ElementInterface:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UIkitVideo:: |
public | function |
Returns the element properties for this element. Overrides ElementInterface:: |
|
UIkitVideo:: |
public static | function | Pre-render callback: Sets the video attributes. |