/** * @param $id * @param $stream * @param $stream_preview * @param bool|false $isRespond * @param string $class * @param bool $showPlayer - выводить Ziggeo player * @return string */ static function getImage($id, $stream, $stream_preview, $isRespond = false, $class = "video-preview", $showPlayer = false) { $image = "<img class=\"no-image\" src=\"" . Url::base(true) . "" . \common\helpers\Html::noImage() . "\" >"; ///$default_ext = ".mp4"; if (is_null($stream)) { return $image; } $ziggeo_video_url = Yii::$app->params['ziggeo']['video_url'] . "/" . Yii::$app->params['ziggeo']['api_version'] . "/applications/" . Yii::$app->params['ziggeo']['application_token'] . "/videos/:token/video.mp4"; $scheme = ""; // Stream is an Image if (preg_match('/^http(s)?:\\/\\/([\\w\\d-\\.]*)(.)*\\.(png|jpg|jpeg|gif|wav|mp3|mp4)$/i', $stream) and is_null($stream_preview)) { return $image; } if (preg_match('/^http(s)?:\\/\\/([\\w\\d-\\.]*)(.)*\\.(png|jpg|jpeg|gif|wav|mp3|mp4)$/i', $stream_preview)) { // Stream is pure Url $image = "<img class=\"{$class}\" data-video=\"{$stream}\" src=\"{$stream_preview}\">"; } elseif (preg_match('/(http(s)?:\\/\\/){0,1}[a-z\\.]*ziggeo(.)*/i', $stream_preview)) { // Preview is Ziggeo url if ($showPlayer === true) { $image = self::getPlayer($stream); } else { if (!preg_match('/http/i', $stream_preview)) { $scheme = "http://"; } $src = str_replace(':token', $stream, $ziggeo_video_url); $image = "<img class=\"{$class}\" data-video=\"{$src}\" src=\"{$scheme}{$stream_preview}\">"; } } else { if (preg_match('/([\\w\\d])*/i', $stream) and !preg_match('/(http)/i', $stream) or is_null($stream_preview)) { // It seems like Stream is a Ziggeo Token if (is_null($stream_preview)) { // Запросить урл имаджа через апи и положить его в базу try { $video = self::getInstance()->videos()->get($stream); if (is_object($video)) { ///$default_ext = $video->default_stream->video_type; if (isset($video->embed_image_url)) { $src = str_replace(':token', $stream, $ziggeo_video_url); $image = "<img class=\"{$class}\" data-video=\"{$src}\" src=\"http://{$video->embed_image_url}\">"; $razz = Razz::findOne($id); $razz->pureUpdate = true; if ($isRespond) { $razz->responder_stream_preview = $video->embed_image_url; } else { $razz->stream_preview = $video->embed_image_url; } $razz->fb_friend = $razz->facebook_id; if (!$razz->save()) { self::addError(serialize($razz->getErrors())); $logger = Yii::$app->getLog()->getLogger(); $logger->log('ZiggeoHelper error', \yii\log\Logger::LEVEL_INFO); $logger->log($razz->getErrors(), \yii\log\Logger::LEVEL_ERROR); } } } } catch (ZiggeoException $e) { self::addError($e->getMessage()); } } else { // Только сгенерить имадж // FIXME - Сюда заходит, когда в базе битый урл $razz = Razz::findOne($id); $video_src = str_replace(':token', $stream, $ziggeo_video_url); if ($isRespond) { $preview = $razz->responder_stream_preview; } else { $preview = $razz->stream_preview; } if (!preg_match('/http/i', $preview)) { $preview = "http://" . $preview; } $image = "<img class=\"{$class}\" data-video=\"{$video_src}\" src=\"{$preview}\">"; } if ($showPlayer === true) { $image = self::getPlayer($stream); } } } return $image; }