singletonIf('listings.item.video', static::class); return bff('listings.item.video'); } /** * Получение данных о видео по ссылке на видео, указанной пользователем * @param string $url video-ссылка, embed-ссылка, iframe-код * @return array */ public function parse(string $url): array { $embed = $this->embed($url); if (empty($embed) || $embed['provider_id'] == static::PROVIDER_UNKNOWN) { $extension = $this->app->filter('listings.items.video.parse', $url); if (is_array($extension)) { return $extension; } return []; } return $embed; } /** * Формируем video-слайд для для отображения в iframe * @param string $data сериализованные данные о video * @return string HTML */ public function viewIframe(string $data): string { $html = ''; if (!empty($data) && strpos($data, 'a:') === 0) { $data = func::unserialize($data); if (! empty($data) && is_array($data)) { $thumbnail = ''; if ($data['provider_id'] == self::PROVIDER_VK && ! empty($data['video_url'])) { $html = ''; } elseif ($data['provider_id'] == self::PROVIDER_YOUTUBE) { if (! empty($data['thumbnail_url'])) { $thumbnail = $data['thumbnail_url']; } $html = ''; } elseif ($data['provider_id'] == self::PROVIDER_VIMEO) { if (! empty($data['thumbnail_url'])) { $thumbnail = $data['thumbnail_url']; } $html = ''; } elseif ($data['provider_id'] == self::PROVIDER_RUTUBE && ! empty($data['video_url'])) { $html = ''; } $html = '