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

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

$upload_id                  mt_rand(). '_' .time();
$upload_max_size            $config['game_max_size']*1024*1024;
$game_allowed_extensions    '(' .str_replace(',''|'$config['game_allowed_extensions']). ')';
$image_allowed_extensions   '(' .str_replace(',''|'$config['image_allowed_extensions']). ')';
$game                       = array('title' => '''category' => 0'description' => '''keywords' => '''privacy' => 'public',
                                    
'anonymous' => 'no');
if ( isset(
$_POST['game_upload_started']) ) {
    
$filter     = new VFilter();
    
$title      $filter->get('game_title');
    
$category   $filter->get('game_category''INTEGER');
    
$keywords   $filter->get('game_keywords');
    
$privacy    $filter->get('game_privacy');
    
$anonymous  $filter->get('game_anonymous');

    if ( 
$title == '' ) {
        
$errors[]           = $lang['upload.game_title_empty'];
    } else {
        
$game['title']     = $title;
    }

    if ( 
$keywords == '' ) {
        
$errors[]           = $lang['upload.game_tags_empty'];
    } else {
        
$keywords           prepare_string($keywordsfalse);
        
$game['keywords']   = $keywords;
    }

    if ( 
$category == '0' ) {
        
$errors[]           = $lang['upload.game_category_empty'];
    } else {
        
$game['category']   = $category;
    }
    
    if ( 
$_FILES['game_file']['tmp_name'] == '' ) {
        
$errors[]           = $lang['upload.game_file_error'];
    } elseif ( !
is_uploaded_file($_FILES['game_file']['tmp_name']) ) {
        
$errors[]           = 'Game file is not a valid uploaded file!';
    } else {
        
$filename           substr($_FILES['game_file']['name'], strrpos($_FILES['game_file']['name'], DIRECTORY_SEPARATOR)+1);
        
$extension          strtolower(substr($filenamestrrpos($filename'.')+1));
        
$extensions_allowed explode(','$config['game_allowed_extensions']);
        if ( !
in_array($extension$extensions_allowed) ) {
            
$errors[]       = translate($lang['upload.game_ext_invalid'], $extension);
        } else {
            
$space filesize($_FILES['game_file']['tmp_name']);
            if ( 
$space $upload_max_size ) {
                
$errors[]   = translate('upload.game_size'$config['game_max_size']);
            }
        }
    }
    
    if ( 
$_FILES['game_thumb_file']['tmp_name'] == '' ) {
        
$errors[]               = $lang['upload.game_thumb_select'];
    } elseif ( !
is_uploaded_file($_FILES['game_thumb_file']['tmp_name']) ) {
        
$errors[]               = $lang['upload.game_thumb_invalid'];
    } else {
        
$tmb_filename           substr($_FILES['game_thumb_file']['name'], strrpos($_FILES['game_thumb_file']['name'], DIRECTORY_SEPARATOR)+1);
        
$tmb_extension          strtolower(substr($tmb_filenamestrrpos($tmb_filename'.')+1));
        
$tmb_allowed_extensions explode(','$config['image_allowed_extensions']);
        if ( !
in_array($tmb_extension$tmb_allowed_extensions) ) {
            
$errors[]           = translate($lang['upload.game_thumb_ext_invalid'], $tmb_extension);
        } elseif (!
getimagesize($_FILES['game_thumb_file']['tmp_name'])) {
            
$errors[]            = 'Invalid image format. Application error!';
        } else {
            
$tmb_size filesize($_FILES['game_thumb_file']['tmp_name']);
            if ( 
$tmb_size $config['image_max_size'] ) {
                
$errors[]       = translate('upload.game_thumb_size_invalid'$config['image_max_size']);
            } elseif (!
check_image($_FILES['game_thumb_file']['tmp_name'], $tmb_extension)) {
                
$errors[]   = 'Invalid image format! Application error!';
            }
        }
    }

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

    if ( !
$errors ) {
        
$status     = ( $config['approve_games'] == '1' ) ? 1;
        
$sql        "INSERT INTO game
                       SET UID = " 
.$uid", title = " .$conn->qStr($title). ",
                           category = " 
.$category", tags = " .$conn->qStr($keywords). ",
                           space = '" 
.$space"', addtime = '" .time(). "', adddate = '" .date('Y-m-d'). "',
                           type = '" 
.$game['privacy']. "', status = '" .$status"'";
        
$conn->execute($sql);
        
$game_id    $conn->insert_Id();
        
$game_file  $game_id'.swf';
        
$game_path  $config['BASE_DIR']. '/media/games/swf/' .$game_file;
        if ( !
move_uploaded_file($_FILES['game_file']['tmp_name'], $game_path) ) {
            
$errors[] = $lang['upload.game_failed'];
        }
        
        if ( !
$errors ) {
            
$game_tmb_file  $game_id'.jpg';
            
$game_tmb_path  $config['BASE_DIR']. '/media/games/tmb/orig/' .$game_tmb_file;
            if ( !
move_uploaded_file($_FILES['game_thumb_file']['tmp_name'], $game_tmb_path) ) {
                
$errors[] = $lang['upload.game_thumb_failed'];
            }
            
            if ( !
$errors ) {        
                require 
$config['BASE_DIR']. '/classes/image.class.php';
                
$src        $game_tmb_path;
                
$dst        $config['BASE_DIR']. '/media/games/tmb/' .$game_tmb_file;
                
$image      = new VImageConv();
                
$image->process($src$dst'MAX_WIDTH'256144);
                
$image->canvas(256144'000000'true);
                
$sql        "UPDATE game_categories SET total_games = total_games+1 WHERE category_id = " .$category" LIMIT 1";
                
$conn->execute($sql);
                
$sql        "UPDATE signup SET total_games = total_games+1, points = points+5 WHERE UID = " .$uid" LIMIT 1";
                
$conn->execute($sql);
                
                
$game_url  $config['BASE_URL']. '/game/' .$game_id'/' .prepare_string($title);
                
$game_link '<a href="' .$game_url'">'.$game_url.'</a>';
                
$search     = array('{$site_title}''{$site_name}''{$username}''{$game_link}''{$baseurl}');
                
$replace    = array($config['site_title'], $config['site_name'], $_SESSION['username'], $game_link$config['BASE_URL']);
                
$mail       = new VMail();
                if ( 
$config['approve_games'] == '0' ) {
                    
$mail->sendPredefined($_SESSION['email'], 'game_approve'$search$replace);
                } else {
                    
$mail->sendPredefined($_SESSION['email'], 'game_upload'$search$replace);
                }
                
                
$game['title']      = '';
                
$game['category']   = '';
                
$game['keywords']   = '';
                
$game['privacy']    = 'public';
                
$game['anonymous']  = 'no';
                
                if ( 
$config['approve_games'] == '1' ) {
                    
$messages[] = translate('upload.game_approve'$config['site_name']);
                } else {
                    
$messages[] = translate('upload.game_success'$config['site_name'], $game_urlhtmlspecialchars($titleENT_QUOTES'UTF-8'));
                }
            }
        }
    }
}

$sql        "SELECT * FROM game_categories ORDER BY category_name ASC";
$rs         $conn->execute($sql);
$categories $rs->getrows();

$smarty->assign('upload_id'$upload_id);
$smarty->assign('upload_max_size'$upload_max_size);
$smarty->assign('upload_allowed_extensions'$game_allowed_extensions);
$smarty->assign('image_allowed_extensions'$image_allowed_extensions);
$smarty->assign('upload_game'true);
$smarty->assign('game'$game);
$smarty->assign('categories'$categories);
?>
Онлайн: 1
Реклама