123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
- /**
- *
- * PHP Pro Bid $Id$ 3Z7H1NpZ9hRn2zzSFfo3651+Q7DygI4OQvosl/dOmQQ=
- *
- * @link http://www.phpprobid.com
- * @copyright Copyright (c) 2017 Online Ventures Software & CodeCube SRL
- * @license http://www.phpprobid.com/license Commercial License
- *
- * @version 7.10 [rev.7.10.01]
- */
- /**
- * video player
- *
- * plays either:
- * - local files, in which case it will render the video tag
- * - remote files (embedded code) in which case it will only return the code to be displayed.
- *
- * Format Support
- * mp4 Please visit http://caniuse.com/#feat=mpeg4 for comprehensive information
- * webm Please visit http://caniuse.com/#feat=webm for comprehensive information
- * flv All browsers that support Flash (version 10 or later)
- * YouTube All browsers since it uses iframe tag
- */
- namespace Ppb\View\Helper;
- use Cube\View\Helper\AbstractHelper,
- Cube\Controller\Front,
- Ppb\Db\Table\Row\ListingMedia,
- Ppb\Service\ListingsMedia as ListingsMediaService;
- class VideoPlayer extends AbstractHelper
- {
- /**
- *
- * render the video player that will play the video
- *
- * @param string|\Ppb\Db\Table\Row\ListingMedia $media
- *
- * @return string
- */
- public function videoPlayer($media)
- {
- $video = $player = $videoId = null;
- if ($media instanceof ListingMedia) {
- if ($media->getData('type') == ListingsMediaService::TYPE_VIDEO) {
- $video = $media->getData('value');
- $videoId = 'video_' . $media->getData('id');
- }
- }
- else if (is_array($media)) {
- if ($media['type'] == ListingsMediaService::TYPE_VIDEO) {
- $video = $media['value'];
- $videoId = $media['id'];
- }
- }
- else if (is_string($media)) {
- $video = $media;
- $videoId = 'video_' . md5(uniqid(time()));
- }
- $video = $this->_decode($video);
- $video = $this->getView()->renderHtml($video);
- if (strcmp(strip_tags($video), $video) === 0 && !preg_match('#^http(s)?://(.*)+$#i', $video)) {
- $baseUrl = Front::getInstance()->getRequest()->getBaseUrl();
- /** @var \Cube\View\Helper\Script $scriptHelper */
- $scriptHelper = $this->getView()->getHelper('script');
- $scriptHelper->addHeaderCode('<link href="' . $baseUrl . '/js/videojs/video-js.min.css" media="screen" rel="stylesheet" type="text/css">')
- ->addBodyCode('<script type="text/javascript" src="' . $baseUrl . '/js/videojs/video.min.js"></script>');
- $baseUrl = Front::getInstance()->getRequest()->getBaseUrl();
- $video = $baseUrl . \Ppb\Utility::URI_DELIMITER
- . \Ppb\Utility::getFolder('uploads') . \Ppb\Utility::URI_DELIMITER
- . $video;
- $player = '
- <video id="' . $videoId . '"
- class="video-js vjs-default-skin"
- controls preload="auto" width="640" height="350">
- <source src="' . $video . '" />
- </video>';
- }
- else {
- $player = $video;
- }
- return $player;
- }
- /**
- *
- * decode string if encoded
- *
- * @param $string
- *
- * @return bool|string
- */
- protected function _decode($string)
- {
- $decoded = base64_decode($string);
- return (base64_encode($decoded) === $string) ? $decoded : $string;
- }
- }
|