예제 #1
0
 protected function __construct($aObject, $oStorage)
 {
     parent::__construct($aObject, $oStorage);
     $this->_sQueueStorage = getParam('sys_transcoder_queue_storage') ? 'sys_transcoder_queue_files' : '';
     $this->_oDb = new BxDolTranscoderVideoQuery($aObject);
     $this->_sQueueTable = $this->_oDb->getQueueTable();
 }
예제 #2
0
 public function processing()
 {
     set_time_limit(10800);
     ignore_user_abort();
     if (!defined('BX_TRANSCODER_NO_TRANSCODING')) {
         BxDolTranscoder::processQueue();
     }
     if (defined('BX_TRANSCODER_PROCESS_COMPLETED')) {
         BxDolTranscoder::processCompleted();
     }
 }
예제 #3
0
 protected function __construct($aObject, $oStorage)
 {
     parent::__construct($aObject, $oStorage);
     $this->_oDb = new BxDolTranscoderImageQuery($aObject, false);
     $this->_sQueueTable = $this->_oDb->getQueueTable();
 }
예제 #4
0
/**
 * 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);
}
예제 #5
0
 /**
  * Add all available meta tags to the head section 
  * @return number of successfully added metas
  */
 public function metaAdd($iId, $mixedImage = false)
 {
     $i = 0;
     foreach ($this->_aMetas as $sMeta) {
         $sFunc = $sMeta . 'AddMeta';
         $i += $this->{$sFunc}($iId);
     }
     if ($mixedImage && is_array($mixedImage)) {
         if (!empty($mixedImage['object'])) {
             $o = BxDolStorage::getObjectInstance($mixedImage['object']);
         } elseif (!empty($mixedImage['transcoder'])) {
             $o = BxDolTranscoder::getObjectInstance($mixedImage['transcoder']);
         }
         $mixedImage = $o ? $o->getFileUrlById($mixedImage['id']) : false;
     }
     if ($mixedImage) {
         BxDolTemplate::getInstance()->addPageMetaImage($mixedImage);
     }
     return $i;
 }
예제 #6
0
 /**
  * Get logo URL.
  * @return string
  */
 function getMainLogoUrl()
 {
     $iFileId = (int) getParam('sys_site_logo');
     if (!$iFileId) {
         return false;
     }
     $oStorage = BxDolTranscoder::getObjectInstance('sys_custom_images');
     $sFileUrl = $oStorage->getFileUrl($iFileId);
     if (!$sFileUrl) {
         return false;
     }
     if (getParam('sys_site_logo_width') > 0) {
         $sFileUrl = bx_append_url_params($sFileUrl, array('x' => getParam('sys_site_logo_width')));
     }
     if (getParam('sys_site_logo_height') > 0) {
         $sFileUrl = bx_append_url_params($sFileUrl, array('y' => getParam('sys_site_logo_height')));
     }
     return $sFileUrl;
 }
예제 #7
0
 public function transcode($mixedHandler, $iProfileId = 0)
 {
     if (!($bRet = parent::transcode($mixedHandler, $iProfileId))) {
         return $bRet;
     }
     $x = $this->getCustomResizeDimension('x');
     $y = $this->getCustomResizeDimension('y');
     if ($x || $y) {
         $this->_oDb->updateTranscodedFileData($mixedHandler, array('x' => $x, 'y' => $y));
     }
     return $bRet;
 }
예제 #8
0
/**
 * page code function
 */
function PageCompMainCode()
{
    ob_start();
    $sTranscoderObject = 'sys_custom_images';
    $sStorageObjectOrig = 'sys_images_custom';
    $iProfileId = bx_get_logged_profile_id();
    if (!isAdmin()) {
        echo "You aren't operator.";
        exit;
    }
    $iPrunedFiles = BxDolTranscoder::pruning();
    if ($iPrunedFiles) {
        echo "iPrunedFiles: {$iPrunedFiles}";
        exit;
    }
    $oTranscoderObject = BxDolTranscoderImage::getObjectInstance($sTranscoderObject);
    if (!$oTranscoderObject) {
        echo "Transcoder object is not available: " . $sTranscoderObject;
        exit;
    }
    //echo "registerHandlers: [" . $oTranscoderObject->registerHandlers() . "] <br />\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>";
        } 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) {
            $sUrlImage = $oTranscoderObject->getFileUrl($r['id']);
            ?>
            <div class="bx-def-font-h2 bx-def-margin-sec-topbottom"><?php 
            echo $r['file_name'];
            ?>
</div>
            Size: <input id="size-<?php 
            echo $r['id'];
            ?>
" type="text" class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom bx-transcoder-custom-images-size" placeholder="320x240" />
            Copy&amp;paste URL: <input id="input-<?php 
            echo $r['id'];
            ?>
" type="text" value="<?php 
            echo $oTranscoderObject->getFileUrlNotReady($r['id']);
            ?>
" class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom" /> <br />
            <img src="<?php 
            echo $sUrlImage;
            ?>
" style="height:200px; width:auto;" />
            <hr class="bx-def-hr" />
<?php 
        }
    }
    $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>

    <script>
        $(document).ready(function () {
            $('.bx-transcoder-custom-images-size').on('change input', function () {
                var sId = $(this).attr('id').replace('size-', '');
                var a = $('#input-' + sId).val().split('&');
                var aSize = this.value.split('x');
                var s = '';
                for (var i in a) {
                    if (-1 == a[i].indexOf('t=') && -1 == a[i].indexOf('x=') && -1 == a[i].indexOf('y='))
                        s += a[i] + '&';
                }

                s = s.replace(/&$/, '');
                
                if (parseInt(aSize[0]) > 0)
                    s = bx_append_url_params(s, 'x=' + aSize[0]);
                if (parseInt(aSize[1]) > 0)
                    s = bx_append_url_params(s, 'y=' + aSize[1]);

                $('#input-' + sId).val(s);
            });
        });
    </script>
<?php 
    $s = ob_get_clean();
    return DesignBoxContent("Custom images transcoder", $s, BX_DB_PADDING_DEF);
}
예제 #9
0
 protected function _entitySocialSharing($iId, $iIdForTimeline, $iIdThumb, $sTitle, $sObjectStorage, $sObjectTranscoder, $sObjectVote, $sUriViewEntry)
 {
     $sUrl = BxDolPermalinks::getInstance()->permalink('page.php?i=' . $sUriViewEntry . '&id=' . $iId);
     $aCustomParams = false;
     if ($iIdThumb) {
         if ($sObjectTranscoder) {
             $o = BxDolTranscoder::getObjectInstance($sObjectTranscoder);
         } else {
             $o = BxDolStorage::getObjectInstance($sObjectStorage);
         }
         if ($sImgUrl = $o->getFileUrlById($iIdThumb)) {
             $aCustomParams = array('img_url' => $sImgUrl, 'img_url_encoded' => rawurlencode($sImgUrl));
         }
     }
     //TODO: Rebuild using menus engine when it will be ready for such elements like Vote, Share, etc.
     $sVotes = '';
     $oVotes = BxDolVote::getObjectInstance($sObjectVote, $iId);
     if ($oVotes) {
         $sVotes = $oVotes->getElementBlock(array('show_do_vote_as_button' => true));
     }
     $sShare = '';
     if (BxDolRequest::serviceExists('bx_timeline', 'get_share_element_block')) {
         $sShare = BxDolService::call('bx_timeline', 'get_share_element_block', array(bx_get_logged_profile_id(), $this->_aModule['name'], 'added', $iIdForTimeline, array('show_do_share_as_button' => true)));
     }
     $sSocial = BxTemplSocialSharing::getInstance()->getCode($iId, $this->_aModule['name'], BX_DOL_URL_ROOT . $sUrl, $sTitle, $aCustomParams);
     return $this->_oTemplate->parseHtmlByName('entry-share.html', array('vote' => $sVotes, 'share' => $sShare, 'social' => $sSocial));
     //TODO: Rebuild using menus engine when it will be ready for such elements like Vote, Share, etc.
 }