Вход Регистрация
Файл: modules/upload/video.php
Строк: 225
<?php
defined
('_VALID') or die('Restricted Access!');
require 
$config['BASE_DIR']. '/include/function_video.php';
require 
$config['BASE_DIR']. '/classes/filter.class.php';

if ( 
$config['video_module'] == '0' ) {
    
VRedirect::go($config['BASE_URL']. '/notfound/page_invalid');
}

$status = ( isset($_GET['status']) ) ? intval($_GET['status']) : 0;

// Added to enforce these paths
$basedir dirname(dirname(dirname(__FILE__)));
$config['BASE_DIR']     = $basedir;
$config['LOG_DIR']         = $basedir.'/tmp/logs';
$config['VDO_DIR']         = $basedir.'/media/videos/vid';


$upload_id            mt_rand(). '_' .time();
$upload_max_size    $config['video_max_size']*1024*1024;
$upload_mb $config['video_max_size'].'mb';
$video_extensions      $config['video_allowed_extensions'];
$video_extensions     str_replace('|',',',$video_extensions);
$video_allowed_ext  '(' .str_replace(',''|'$config['video_allowed_extensions']). ')';
$video              = array('title' => '''description' => '''keywords' => '''category' => 0'privacy' => 'public''anonymous' => 'no');
                            
if (
$status == 1) {
    
$messages[] = $lang['upload.video_uploaded'];
}

if ( isset(
$_POST['video_upload_started']) ) {

        
$error false;

        
$filter         = new VFilter();
        
$title          $filter->get('video_title');
        
$category       $filter->get('video_category''INTEGER');
        
$keywords       $filter->get('video_tags');
        
$privacy        $filter->get('video_privacy');
        
$anonymous      $filter->get('video_anonymous');
        
$description     $filter->get('video_description');
        
$fileName         $filter->get('video_filename');
        
$unique_id         $filter->get('unique_id');

    

        
$extension pathinfo($fileNamePATHINFO_EXTENSION);
        
$filepath $config['VDO_DIR'].'/'.$unique_id.'.'.$extension;

        if(!
file_exists($filepath)) {
             
$error=true;
        }
            
        
$video['title'] = $title;
    
        
$keywords  prepare_tags($keywords); 
        
$video['keywords']  = $keywords;
        
        
$video['category']  = $category;

        
$video['privacy']       = ( $privacy == 'private' ) ? 'private' 'public';
        
$video['anonymous']     = ( $anonymous == 'yes' ) ? 'yes' 'no';
        
$uid                    = ( $anonymous == 'yes' ) ? getAnonymousUID() : intval($_SESSION['uid']);
        
$space filesize($filepath);



        if ( 
$error!=true ) {

            
$sql        =     "INSERT INTO video 
                            SET UID = " 
.$uid", title = " .$conn->qStr($title). ",
                            channel = " 
.$category", keyword = " .$conn->qStr($keywords). ",
                            description = "
.$conn->qStr($description).", 
                            space = '" 
.$space"', addtime = '" .time(). "', adddate = '" .date('Y-m-d'). "', vkey = '" .mt_rand(). "', 
                            type = '" 
.$video['privacy']. "', active = '2'"

            
$conn->execute($sql);
            
$video_id   $conn->insert_Id();


            
$vdoname    $video_id'.' .$extension;
        
            
$vdo_path     $config['VDO_DIR'].'/'.$vdoname;
            
rename($filepath,$vdo_path);

            
$vkey       substr(md5($video_id),11,20);
            
$sql        "UPDATE video SET vkey = '" .$vkey"' WHERE VID = " .intval($video_id). " LIMIT 1";
            
$conn->execute($sql);    
        

            
// ---------------------------------------------------------------------------
            // ---------------------------------------------------------------------------
            
function run_in_background($Command$Priority 0){
                if(
$Priority$PID shell_exec("nohup nice -n $Priority $Command 2> /dev/null & echo $!");
                else 
$PID shell_exec("nohup $Command 2> /dev/null & echo $!");
                return(
$PID);
            }
                
            
$cgi = ( strpos(php_sapi_name(), 'cgi') ) ? 'env -i ' NULL;
            
            
// Proc
            
$cmd $cgi.$config['phppath']
                .
" ".$config['BASE_DIR']."/scripts/convert_videos.php"
                
." ".$vdoname
                
." ".$video_id
                
." ".$vdo_path
            
."";
            
log_conversion($config['LOG_DIR']. '/' .$video_id'.log'$cmd);
            
$lg $config['LOG_DIR']. '/' .$video_id'.log2';
            if(
$config['conversion_q'] == '1') {
                
insert_into_q_fp($video_id$vdoname$vdo_path);
            } else {
                
run_in_background($cmd.' > '.$lg);
            }

            
$duration    get_video_duration($vdo_path$video_id);

            
$sql         "UPDATE video SET 
                            duration = " 
.$conn->qStr($duration). ", 
                            vdoname = " 
.$conn->qStr($vdoname). 
                            WHERE VID = " 
.intval($video_id). " LIMIT 1";


            
$conn->execute($sql);
            
            
            
$video_url  $config['BASE_URL']. '/video/' .$video_id'/' .prepare_string($title);
            
$video_link '<a href="'.$video_url.'">'.$video_url.'</a>';
            

            
$sql "SELECT SUID, username, email
                    FROM video_subscribe
                    LEFT JOIN signup ON signup.UID = video_subscribe.SUID
                    LEFT JOIN users_prefs ON users_prefs.UID = signup.UID
                    WHERE video_subscribe.UID = '"
$uid."' AND users_prefs.video_subscribe='1'";


            
$rs         $conn->execute($sql);
            if ( 
$conn->Affected_Rows() > ) {
                
$subscribers    $rs->getrows();
                
$mail           = new VMail();
                
$mail->setNoReply();
                
$sql            "SELECT * FROM emailinfo WHERE email_id = 'subscribe_email' LIMIT 1";
                
$rs             $conn->execute($sql);
                
$email_path     $config['BASE_DIR']. '/templates/' .$rs->fields['email_path'];
                
$sender         = ( $anonymous == 'yes' ) ? 'anonymous' $_SESSION['username'];
                
$mail->Subject  str_replace('{$sender_name}'$sender$rs->fields['email_subject']);
                foreach ( 
$subscribers as $subscriber ) {
                    
$smarty->assign('video_link'$video_link);
                    
$smarty->assign('username'$subscriber['username']);
                    
$smarty->assign('sender_name'$_SESSION['username']);
                    
$body               $smarty->fetch($email_path);
                    
$mail->AltBody      $body;
                    
$mail->Body         nl2br($body);
                    
$mail->AddAddress($subscriber['email']);
                    
$mail->Send();
                    
$mail->ClearAddresses();
                }
            }
          
            
$search     = array('{$site_title}''{$site_name}''{$username}''{$video_link}''{$baseurl}');
            
$replace    = array($config['site_title'], $config['site_name'], $_SESSION['username'], $video_link$config['BASE_URL']);
            
$mail       = new VMail();
            if ( 
$config['approve'] == '0' ) {
                
$mail->sendPredefined($_SESSION['email'], 'video_approve'$search$replace);
            } else {
                
$mail->sendPredefined($_SESSION['email'], 'video_upload'$search$replace);    
            }
          
            
$sql        "UPDATE channel SET total_videos = total_videos+1 WHERE CHID = " .$category" LIMIT 1";
            
$conn->execute($sql);
            
$sql        "UPDATE signup SET total_videos = total_videos+1, points = points+10 WHERE UID = " .$uid" LIMIT 1";
            
$conn->execute($sql);
            
add_tags($keywords);        

            
$video['title']       = '';
            
$video['description'] = '';
            
$video['keywords']    = '';
            
$video['category']    = 0;
            
$video['privacy']     = 'public';
            
$video['anonymous']   = 'no';
            
            if ( 
$config['approve'] == '1' ) {
                
$messages[] = translate('upload.video_approve'$config['site_name']);
            } else {
                
$messages[] = translate('upload.video_success'$config['site_name'], $video_urlhtmlspecialchars($titleENT_QUOTES'UTF-8'));
            }
        }            
    

}

$smarty->assign('video'$video);
$smarty->assign('upload_id'$upload_id);
$smarty->assign('upload_mb'$upload_mb);
$smarty->assign('upload_max_size'$upload_max_size);
$smarty->assign('allowed_video_extensions'$video_allowed_ext);
$smarty->assign('video_extensions'$video_extensions);
$smarty->assign('upload_video'true);
$smarty->assign('categories'get_categories());
?>
Онлайн: 1
Реклама