# depicter/1.2.0/app/src/Document/Models/Elements/Video.php

Depicter — Popup &amp; Slider Builder, version 1.2.0. 59 lines.

- Page: https://pluginprobe.com/plugins/depicter/1.2.0/code/app/src/Document/Models/Elements/Video.php
- Raw: https://pluginprobe.com/plugins/depicter/1.2.0/raw/app/src/Document/Models/Elements/Video.php
- Modified: 2022-06-01T06:26:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/depicter/1.2.0/code/app/src/Document/Models/Elements/Video.php#L10-L20`.

```php
<?php
namespace Depicter\Document\Models\Elements;

use Averta\Core\Utility\Arr;
use Depicter;
use Depicter\Document\Models;
use Depicter\Html\Html;
use Depicter\Services\MediaBridge;

class Video extends Models\Element
{

	public function render() {

		if ( empty( $this->options->source ) ) {
			return '';
		}

		$elementsAttrs = [];

		if( isset( $this->options->autoPlay ) ){
			$elementsAttrs['data-autoplay'] = $this->options->autoPlay ? "true" : "false";
		}
		if( isset( $this->options->autoPause ) ){
			$elementsAttrs['data-auto-pause'] = $this->options->autoPause ? "true" : "false";
		}

		$videoAttrs = [
			'src'     => Depicter::media()->getSourceUrl( $this->options->source ),
			'preload' => 'metadata'
		];

		if( !empty( $this->options->loop ) ){
			$videoAttrs['loop'] = $this->options->loop ? "true" : "false";
		}
		if( !empty( $this->options->controls ) ){
			$videoAttrs['controls'] = "";
		}
		if( !empty( $this->options->mute ) ){
			$videoAttrs['muted'] = "";
		}

		$elementsAttrs = Arr::merge( $this->getDefaultAttributes(), $elementsAttrs );
		if ( isset( $elementsAttrs['data-height'] ) ) {
			$elementsAttrs['data-height'] = 'auto,,';
		}
		
		$div = Html::div( $elementsAttrs );

		$video = "\n\t" . Html::video( $videoAttrs ) . "\n";

		if ( false !== $a = $this->getLinkTag() ) {
			return $a->nest( $div->nest( $video ) );
		}

		return $div->nest( $video ) . "\n";
	}
}

```
