Вход Регистрация
Файл: album_thumbnail.php
Строк: 153
<?php
/***************************************************************************
 *                            album_thumbnail.php
 *                            -------------------
 *   Разработка: (C) 2003 Smartor
 *   Модификация: чел
 ***************************************************************************/

/***************************************************************************
 *
 *   Эта версия phpBB-WAP является бесплатным
 *   программным обеспечением и распространяется
 *   в рамках лицензии GNU General Public License.
 *   Автор модификации настоятельно не
 *   рекомендует распрострянять её так, как
 *   распространялась 5 версия мода.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
$album_root_path = $phpbb_root_path . 'album_mod/';
include(
$phpbb_root_path . 'extension.inc');
include(
$phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_ALBUM);
init_userprefs($userdata);

include(
$album_root_path . 'album_common.'.$phpEx);

if( isset(
$HTTP_GET_VARS['pic_id']) )
{
    
$pic_id = intval($HTTP_GET_VARS['pic_id']);
}
else if( isset(
$HTTP_POST_VARS['pic_id']) )
{
    
$pic_id = intval($HTTP_POST_VARS['pic_id']);
}
else
{
    die(
'No pics specified');
}

$sql = "SELECT *
        FROM "
. ALBUM_TABLE ."
        WHERE pic_id = '
$pic_id'";
if( !(
$result = $db->sql_query($sql)) )
{
    
message_die(GENERAL_ERROR, 'Could not query pic information', '', __LINE__, __FILE__, $sql);
}
$thispic = $db->sql_fetchrow($result);

$cat_id = $thispic['pic_cat_id'];
$user_id = $thispic['pic_user_id'];

$pic_filetype = substr($thispic['pic_filename'], strlen($thispic['pic_filename']) - 4, 4);
$pic_filename = $thispic['pic_filename'];
$pic_thumbnail = $thispic['pic_thumbnail'];

if( empty(
$thispic) or !file_exists(ALBUM_UPLOAD_PATH . $pic_filename) )
{
    die(
$lang['Pic_not_exist']);
}

if (
$cat_id != PERSONAL_GALLERY)
{
    
$sql = "SELECT * FROM ". ALBUM_CAT_TABLE ."
            WHERE cat_id = '
$cat_id'";
    if( !(
$result = $db->sql_query($sql)) )
    {
        
message_die(GENERAL_ERROR, 'Could not query category information', '', __LINE__, __FILE__, $sql);
    }

    
$thiscat = $db->sql_fetchrow($result);
}
else
{
    
$thiscat = init_personal_gallery_cat($user_id);
}

if (empty(
$thiscat))
{
    die(
$lang['Category_not_exist']);
}

$album_user_access = album_user_access($cat_id, $thiscat, 1, 0, 0, 0, 0, 0); // VIEW

/*if ($album_user_access['view'] == 0)
{
    die($lang['Not_Authorised']);
}*/

if ($userdata['user_level'] != ADMIN)
{
    if( (
$thiscat['cat_approval'] == ADMIN) or (($thiscat['cat_approval'] == MOD) and !$album_user_access['moderator']) )
    {
        if (
$thispic['pic_approval'] != 1)
        {
            die(
$lang['Not_Authorised']);
        }
    }
}

if( (
$album_config['hotlink_prevent'] == 1) and (isset($HTTP_SERVER_VARS['HTTP_REFERER'])) )
{
    
$check_referer = explode('?', $HTTP_SERVER_VARS['HTTP_REFERER']);
    
$check_referer = trim($check_referer[0]);

    
$good_referers = array();

    if (
$album_config['hotlink_allowed'] != '')
    {
        
$good_referers = explode(',', $album_config['hotlink_allowed']);
    }

    
$good_referers[] = $board_config['server_name'] . $board_config['script_path'];

    
$errored = TRUE;

    for (
$i = 0; $i < count($good_referers); $i++)
    {
        
$good_referers[$i] = trim($good_referers[$i]);

        if( (
strstr($check_referer, $good_referers[$i])) and ($good_referers[$i] != '') )
        {
            
$errored = FALSE;
        }
    }

    if (
$errored)
    {
        die(
$lang['Not_Authorised']);
    }
}

if( (
$pic_filetype != '.jpg') and ($pic_filetype != '.png') and ($pic_filetype != '.gif') )
{
    
header('Content-type: image/jpeg');
    
readfile($images['no_thumbnail']);
    exit;
}
else
{
    if( (
$album_config['thumbnail_cache'] == 1) and ($pic_thumbnail != '') and file_exists(ALBUM_CACHE_PATH . $pic_thumbnail) )
    {
        switch (
$pic_filetype)
        {
          case 
'.gif':
            case 
'.jpg':
                
header('Content-type: image/jpeg');
                break;
            case 
'.png':
                
header('Content-type: image/png');
                break;
        }

        
readfile(ALBUM_CACHE_PATH . $pic_thumbnail);
        exit;
    }

    
$pic_size = @getimagesize(ALBUM_UPLOAD_PATH . $pic_filename);
    
$pic_width = $pic_size[0];
    
$pic_height = $pic_size[1];

    
$gd_errored = FALSE;
    switch (
$pic_filetype)
    {
     case 
'.gif':
      
$read_function = 'imagecreatefromgif';
      
$pic_filetype = '.jpg';
   break;
        case 
'.jpg':
            
$read_function = 'imagecreatefromjpeg';
            break;
        case 
'.png':
            
$read_function = 'imagecreatefrompng';
            break;
    }

    
$src = @$read_function(ALBUM_UPLOAD_PATH  . $pic_filename);

    if (!
$src)
    {
        
$gd_errored = TRUE;
        
$pic_thumbnail = '';
    }
    else if( (
$pic_width > $album_config['thumbnail_size']) or ($pic_height > $album_config['thumbnail_size']) )
    {
                        
$thumb_width = $thumb_height = $album_config['thumbnail_size'];                    
            
$thumbnail_width = $thumb_width;
                        
$thumbnail_height = floor( $pic_height * ( $thumbnail_width / $pic_width ) );            
                
$new_left = '0';
                        
$new_top  = floor(($thumbnail_height - $thumb_height) / 2);
                        if (
$thumbnail_height < $thumb_height) 
                        {
                               
$thumbnail_height = $thumb_height;
                               
$thumbnail_width = floor($pic_width * ($thumbnail_height / $pic_height) );
                               
$new_left = floor(($thumbnail_width - $thumb_width) / 2);
                               
$new_top = '0';
                        }
                                                        
            
$thumbnail2 = ($album_config['gd_version'] == 1) ? @imagecreate($thumbnail_width, $thumbnail_height) : @imagecreatetruecolor($thumbnail_width, $thumbnail_height);
            
$resize_function = ($album_config['gd_version'] == 1) ? 'imagecopyresized' : 'imagecopyresampled';                                           
            @
$resize_function($thumbnail2, $src, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);                
      
            
$thumbnail = ($album_config['gd_version'] == 1) ? @imagecreate($thumb_width, $thumb_height) : @imagecreatetruecolor($thumb_width, $thumb_height);
                @
imagecopy($thumbnail, $thumbnail2, 0, 0, $new_left, $new_top, $thumb_width, $thumb_height);
    }
    else
    {
        
$thumbnail = $src;
    }

    if (!
$gd_errored)
    {
        if (
$album_config['thumbnail_cache'] == 1)
        {
            
$pic_thumbnail = $pic_filename;

            switch (
$pic_filetype)
            {
                case 
'.jpg':
                    @
imagejpeg($thumbnail, ALBUM_CACHE_PATH . $pic_thumbnail, $album_config['thumbnail_quality']);
                    break;
                case 
'.png':
                    @
imagepng($thumbnail, ALBUM_CACHE_PATH . $pic_thumbnail);
                    break;
            }

            @
chmod(ALBUM_CACHE_PATH . $pic_thumbnail, 0777);
        }

        switch (
$pic_filetype)
        {
            case 
'.jpg':
                @
imagejpeg($thumbnail, '', $album_config['thumbnail_quality']);
                break;
            case 
'.png':
                @
imagepng($thumbnail);
                break;
        }

        exit;
    }
    else
    {
        
header('Content-type: image/jpeg');
        
readfile('images/nothumbnail.jpg');
        exit;
    }
}

?>
Онлайн: 4
Реклама