| | |
| | | <?php |
| | | namespace JVBase\blocks; |
| | | |
| | | use JVBase\blocks\CustomBlocks; |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | |
| | | class VideoCoverBlock |
| | | { |
| | | protected static ?VideoCoverBlock $instance = null; |
| | | protected string $path = JVB_DIR . '/build/video-cover'; |
| | | protected string $path = JVB_DIR . '/build/video'; |
| | | |
| | | public static function getInstance(): VideoCoverBlock |
| | | { |
| | |
| | | */ |
| | | public function render($attributes, $content): string |
| | | { |
| | | |
| | | // Extract attributes with defaults |
| | | $poster_id = $attributes['posterId'] ?? 0; |
| | | $video_sources = $attributes['videoSources'] ?? []; |
| | | $mobile_sources = $attributes['mobileSources'] ?? []; |
| | | $css_class = $attributes['className'] ?? ''; |
| | | $fade_class = $attributes['fadeEffect'] ?? false ? 'fade' : ''; |
| | | $overlay_opacity = $attributes['overlayOpacity'] ?? 0; |
| | | $content_alignment = $attributes['contentAlignment'] ?? 'center'; |
| | | $min_height = $attributes['minHeight'] ?? 0; |
| | | //Get date of current post |
| | | global $post; |
| | | $date = date('c',strtotime($post->post_date)); |
| | |
| | | "uploadDate": "'.$date.'" |
| | | } |
| | | </script> |
| | | <div class="wrap"> |
| | | <div class="wrap abs edges"> |
| | | <div class="video-container">'; |
| | | $html .= '<video'; |
| | | $html .= ' muted loop playsinline autoplay'; |
| | |
| | | } |
| | | |
| | | $html .= '</video>'; |
| | | $html .= '</div></div><div class="inner-wrap"></div></section>'; |
| | | |
| | | $inner_content = $this->extractInnerContent($content); |
| | | $html .= '</div></div><div class="inner-wrap">'.$inner_content.'</div></section>'; |
| | | |
| | | return $html; |
| | | } |
| | | |
| | | /** |
| | | * Extract inner content from the saved block content |
| | | * Removes the wrapper div and returns just the inner blocks HTML |
| | | */ |
| | | protected function extractInnerContent(string $content): string |
| | | { |
| | | if (empty($content)) { |
| | | return ''; |
| | | } |
| | | |
| | | // Remove the placeholder wrapper div |
| | | $content = preg_replace('/<div[^>]*class="[^"]*video-cover-wrapper-placeholder[^"]*"[^>]*>/', '', $content, 1); |
| | | $content = preg_replace('/<\/div>\s*$/', '', $content, 1); |
| | | |
| | | return trim($content); |
| | | } |
| | | } |