/** * Depending on original file mime type call appropriate transcoder */ public function getFileUrl($mixedHandler) { $oStorageOriginal = BxDolStorage::getObjectInstance($this->_aObject['source_params']['object']); if (!$oStorageOriginal) { return false; } $aFile = $oStorageOriginal->getFile($mixedHandler); if (!$aFile) { return false; } $sTranscoder = ''; if (0 === strncmp($aFile['mime_type'], 'image/', 6) && !empty($this->_aObject['source_params']['image'])) { $sTranscoder = $this->_aObject['source_params']['image']; } elseif (0 === strncmp($aFile['mime_type'], 'video/', 6) && !empty($this->_aObject['source_params']['video_poster'])) { $sTranscoder = $this->_aObject['source_params']['video_poster']; // if additional video transcoders provided call it to force video conversion if (empty($this->_aObject['source_params']['video'])) { continue; } foreach ($this->_aObject['source_params']['video'] as $sVideoTranscoder) { if (!($oTranscoder = BxDolTranscoderVideo::getObjectInstance($sVideoTranscoder))) { continue; } $oTranscoder->getFileUrl($mixedHandler); } } if (!$sTranscoder) { return false; } if (!($oTranscoder = BxDolTranscoderImage::getObjectInstance($sTranscoder))) { return false; } return $oTranscoder->getFileUrl($mixedHandler); }
/** * page code function */ function PageCompMainCode() { ob_start(); $sTranscoderObjectPoster = 'sample_video_poster'; $sTranscoderObjectMP4 = 'sample_video_mp4'; $sTranscoderObjectWebM = 'sample_video_webm'; $sStorageObjectOrig = 'sample_transcoder_video_orig'; $iProfileId = bx_get_logged_profile_id(); if (!$iProfileId) { echo "You aren't logged in."; exit; } $iPrunedFiles = BxDolTranscoder::pruning(); if ($iPrunedFiles) { echo "iPrunedFiles: {$iPrunedFiles}"; exit; } $oTranscoderPoster = BxDolTranscoderVideo::getObjectInstance($sTranscoderObjectPoster); $oTranscoderMP4 = BxDolTranscoderVideo::getObjectInstance($sTranscoderObjectMP4); $oTranscoderWebM = BxDolTranscoderVideo::getObjectInstance($sTranscoderObjectWebM); if (!$oTranscoderPoster || !$oTranscoderMP4 || !$oTranscoderWebM) { echo "Transcoder object is not available: " . $sTranscoderObjectPoster . ', ' . $sTranscoderObjectMP4 . ', ' . $sTranscoderObjectWebM; exit; } echo "registerHandlers poster: [" . $oTranscoderPoster->registerHandlers() . "] <br />\n"; echo "registerHandlers mp4: [" . $oTranscoderMP4->registerHandlers() . "] <br />\n"; echo "registerHandlers webm: [" . $oTranscoderWebM->registerHandlers() . "] <hr class='bx-def-hr' />\n"; $oStorageOrig = BxDolStorage::getObjectInstance($sStorageObjectOrig); if (!$oStorageOrig) { echo "Storage object is not available: " . $sStorageObjectOrig; exit; } if (isset($_POST['upload'])) { $iId = $oStorageOrig->storeFileFromForm($_FILES['file'], true, $iProfileId); if ($iId) { $iCount = $oStorageOrig->afterUploadCleanup($iId, $iProfileId); echo "<h2>Uploaded file id: " . $iId . "(deleted ghosts:" . $iCount . ") </h2>"; // force transcode echo "Force transcode: <br />"; echo "poster: " . $oTranscoderPoster->getFileUrl($iId) . '<br />'; echo "mp4: " . $oTranscoderMP4->getFileUrl($iId) . '<br />'; echo "webm: " . $oTranscoderWebM->getFileUrl($iId) . '<hr class="bx-def-hr" />'; } else { echo "<h2>Error uploading file: " . $oStorage->getErrorString() . '</h2><hr class="bx-def-hr" />'; } } elseif (isset($_POST['delete'])) { foreach ($_POST['file_id'] as $iFileId) { $bRet = $oStorageOrig->deleteFile($iFileId, $iProfileId); if ($bRet) { echo "<h2>Deleted file id: " . $iFileId . '</h2><hr class="bx-def-hr" />'; } else { echo "<h2>File deleting error: " . $oStorageOrig->getErrorString() . '</h2><hr class="bx-def-hr" />'; } } } else { $a = $oStorageOrig->getFilesAll(); foreach ($a as $r) { $sUrlPoster = $oTranscoderPoster->getFileUrl($r['id']); $sUrlMP4 = $oTranscoderMP4->getFileUrl($r['id']); $sUrlWebM = $oTranscoderWebM->getFileUrl($r['id']); echo '<h3>' . $r['file_name'] . '</h3>'; echo BxTemplFunctions::getInstance()->videoPlayer($sUrlPoster, $sUrlMP4, $sUrlWebM, false, 'height:200px;'); echo '<hr class="bx-def-hr" />'; } } $a = $oStorageOrig->getFilesAll(); ?> <h2>Files List</h2> <form method="POST"> <?php foreach ($a as $r) { ?> <input type="checkbox" name="file_id[]" value="<?php echo $r['id']; ?> " /> <?php echo $r['file_name']; ?> <br /> <?php } ?> <input type="submit" name="delete" value="Delete" class="bx-btn bx-btn-small bx-def-margin-sec-top" style="float:none;" /> </form> <hr class="bx-def-hr" /> <h2>Upload</h2> <form enctype="multipart/form-data" method="POST"> <input type="file" name="file" /> <br /> <input type="submit" name="upload" value="Upload" class="bx-btn bx-btn-small bx-def-margin-sec-top" style="float:none;" /> </form> <?php $s = ob_get_clean(); return DesignBoxContent("Sample video transcoder", $s, BX_DB_PADDING_DEF); }
protected function _getCommonData(&$aEvent) { $oModule = $this->getModule(); $sJsObject = $this->_oConfig->getJsObject('view'); $sPrefix = $this->_oConfig->getPrefix('common_post'); $sType = str_replace($sPrefix, '', $aEvent['type']); $aResult = array('owner_id' => $aEvent['object_id'], 'content_type' => $sType, 'content' => array('sample' => '_bx_timeline_txt_sample', 'url' => $this->_oConfig->getItemViewUrl($aEvent)), 'votes' => '', 'comments' => '', 'title' => '', 'description' => ''); switch ($sType) { case BX_TIMELINE_PARSE_TYPE_POST: if (!empty($aEvent['content'])) { $aResult['content'] = array_merge($aResult['content'], unserialize($aEvent['content'])); } $aLinks = $this->_oDb->getLinks($aEvent['id']); if (!empty($aLinks) && is_array($aLinks)) { foreach ($aLinks as $aLink) { $aResult['content']['links'][] = array('url' => $aLink['url'], 'title' => $aLink['title'], 'text' => $aLink['text']); } } $aPhotos = $this->_oDb->getMedia(BX_TIMELINE_MEDIA_PHOTO, $aEvent['id']); if (!empty($aPhotos) && is_array($aPhotos)) { $oStorage = BxDolStorage::getObjectInstance($this->_oConfig->getObject('storage_photos')); $oTranscoder = BxDolTranscoderImage::getObjectInstance($this->_oConfig->getObject('transcoder_photos_view')); foreach ($aPhotos as $iPhotoId) { $sPhotoSrcOrig = $oStorage->getFileUrlById($iPhotoId); $aResult['content']['images'][] = array('src' => $oTranscoder->getFileUrl($iPhotoId), 'src_orig' => $sPhotoSrcOrig, 'title' => '', 'onclick' => $sJsObject . '.showPhoto(this, \'' . $sPhotoSrcOrig . '\')'); } } $aVideos = $this->_oDb->getMedia(BX_TIMELINE_MEDIA_VIDEO, $aEvent['id']); if (!empty($aVideos) && is_array($aVideos)) { $oTranscoderPoster = BxDolTranscoderVideo::getObjectInstance($this->_oConfig->getObject('transcoder_videos_poster')); $oTranscoderMp4 = BxDolTranscoderVideo::getObjectInstance($this->_oConfig->getObject('transcoder_videos_mp4')); $oTranscoderWebm = BxDolTranscoderVideo::getObjectInstance($this->_oConfig->getObject('transcoder_videos_webm')); foreach ($aVideos as $iVideoId) { $aResult['content']['videos'][] = array('src_poster' => $oTranscoderPoster->getFileUrl($iVideoId), 'src_mp4' => $oTranscoderMp4->getFileUrl($iVideoId), 'src_webm' => $oTranscoderWebm->getFileUrl($iVideoId)); } } break; case BX_TIMELINE_PARSE_TYPE_SHARE: if (empty($aEvent['content'])) { return array(); } $aContent = unserialize($aEvent['content']); if (!$this->_oConfig->isSystem($aContent['type'], $aContent['action'])) { $aShared = $this->_oDb->getEvents(array('browse' => 'id', 'value' => $aContent['object_id'])); $aShared = $this->_getCommonData($aShared); } else { $aShared = $this->_getSystemData($aContent); } if (empty($aShared) || !is_array($aShared)) { return array(); } $aResult['content'] = array_merge($aContent, $aShared['content']); $aResult['content']['parse_type'] = !empty($aShared['content_type']) ? $aShared['content_type'] : BX_TIMELINE_PARSE_TYPE_DEFAULT; $aResult['content']['owner_id'] = $aShared['owner_id']; list($aResult['content']['owner_name'], $aResult['content']['owner_url']) = $oModule->getUserInfo($aShared['owner_id']); list($sUserName) = $oModule->getUserInfo($aEvent['object_id']); $sSample = !empty($aResult['content']['sample']) ? $aResult['content']['sample'] : '_bx_timeline_txt_sample'; $aResult['title'] = _t('_bx_timeline_txt_user_shared_sample', $sUserName, $aResult['content']['owner_name'], _t($sSample)); $aResult['description'] = ''; break; } $sSystem = $this->_oConfig->getObject('vote'); if ($oModule->getVoteObject($sSystem, $aEvent['id']) !== false) { $aResult['votes'] = array('system' => $sSystem, 'object_id' => $aEvent['id'], 'count' => $aEvent['votes']); } $sSystem = $this->_oConfig->getObject('comment'); if ($oModule->getCmtsObject($sSystem, $aEvent['id']) !== false) { $aResult['comments'] = array('system' => $sSystem, 'object_id' => $aEvent['id'], 'count' => $aEvent['comments']); } return $aResult; }