Вход Регистрация
Файл: apwa/gallery/album.php
Строк: 250
<?php
/**
*
* @package phpBB Gallery
* @version $Id$
* @copyright (c) 2007 nickvergessen nickvergessen@gmx.de http://www.flying-bits.org
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/

define('IN_PHPBB'true);
$phpEx substr(strrchr(__FILE__'.'), 1);
include(
'common.' $phpEx);
include(
$phpbb_root_path 'common.' $phpEx);

phpbb_gallery::setup(array('mods/gallery_ucp''mods/gallery'));
phpbb_gallery_url::_include('functions_display''phpbb');

/**
* Check the request
*/
$user_id    request_var('user_id'0);
$album_id    request_var('album_id'0);
$start        request_var('start'0);
$mode        request_var('mode''');
$album_data    phpbb_gallery_album::get_info($album_id);
$sort_days    request_var('st'0);
$sort_key    request_var('sk', ($album_data['album_sort_key']) ? $album_data['album_sort_key'] : phpbb_gallery_config::get('default_sort_key'));
$sort_dir    request_var('sd', ($album_data['album_sort_dir']) ? $album_data['album_sort_dir'] : phpbb_gallery_config::get('default_sort_dir'));

/**
* Did the contest end?
*/
if ($album_data['contest_id'] && $album_data['contest_marked'] && (($album_data['contest_start'] + $album_data['contest_end']) < time()))
{
    
$contest_end_time $album_data['contest_start'] + $album_data['contest_end'];
    
phpbb_gallery_contest::end($album_id$album_data['contest_id'], $contest_end_time);

    
$album_data['contest_marked'] = phpbb_gallery_image::NO_CONTEST;
}

/**
* Build auth-list
*/
phpbb_gallery::$auth->gen_auth_level('album'$album_id$album_data['album_status'], $album_data['album_user_id']);

if (!
phpbb_gallery::$auth->acl_check('i_view'$album_id$album_data['album_user_id']))
{
    if (
$user->data['is_bot'])
    {
        
phpbb_gallery_url::redirect('index');
    }
    if (!
$user->data['is_registered'])
    {
        
login_box();
    }
    else
    {
        
trigger_error('NOT_AUTHORISED');
    }
}

/**
* Are we (un)watching the album?
*/
$token request_var('hash''');
if (((
$mode == 'watch') || ($mode == 'unwatch')) && check_link_hash($token"{$mode}_$album_id"))
{
    
$backlink phpbb_gallery_url::append_sid('album'"album_id=$album_id");

    if (
$mode == 'watch')
    {
        
phpbb_gallery_notification::add_albums($album_id);
        
$message $user->lang['WATCHING_ALBUM'] . '<br />';
    }
    if (
$mode == 'unwatch')
    {
        
phpbb_gallery_notification::remove_albums($album_id);
        
$message $user->lang['UNWATCHED_ALBUM'] . '<br />';
    }

    
$message .= '<br />' sprintf($user->lang['CLICK_RETURN_ALBUM'], '<a href="' $backlink '">''</a>');

    
meta_refresh(3$backlink);
    
trigger_error($message);
}

// Build the navigation & display subalbums
phpbb_gallery_album::generate_nav($album_data);
phpbb_gallery_album::display_albums($album_data$config['load_moderators']);

// Set some variables to their defaults
$allowed_create false;
$image_counter 0;
$l_moderator $moderators_list $s_limit_days $s_sort_key $s_sort_dir $u_sort_param '';
$grouprows $album_moderators = array();
$images_per_page phpbb_gallery_config::get('album_rows') * phpbb_gallery_config::get('album_columns');

/**
* We have album_type so that there may be images ...
*/
if ($album_data['album_type'] != phpbb_gallery_album::TYPE_CAT)
{
    if (
phpbb_gallery::$auth->acl_check('m_'$album_id$album_data['album_user_id']))
    {
        
$template->assign_var('U_MCP'phpbb_gallery_url::append_sid('mcp'"album_id=$album_id"));
    }

    
// When we do the slideshow, we don't need the moderators
    
if ($mode != 'slide_show')
    {
        if (
$config['load_moderators'])
        {
            
phpbb_gallery_album::get_moderators($album_moderators$album_id);
        }
        if (!empty(
$album_moderators[$album_id]))
        {
            
$l_moderator = (sizeof($album_moderators[$album_id]) == 1) ? $user->lang['MODERATOR'] : $user->lang['MODERATORS'];
            
$moderators_list implode(', '$album_moderators[$album_id]);
        }
    }

    
/**
    * Build the sort options
    */
    
$limit_days = array(=> $user->lang['ALL_IMAGES'], => $user->lang['1_DAY'], => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);
    
$sort_by_text = array('t' => $user->lang['TIME'], 'n' => $user->lang['IMAGE_NAME'], 'vc' => $user->lang['GALLERY_VIEWS']);
    
$sort_by_sql = array('t' => 'image_time''n' => 'image_name_clean''vc' => 'image_view_count');

    
// Do not sort images after upload-username on running contests, and of course ratings aswell!
    
if ($album_data['contest_marked'] != phpbb_gallery_image::IN_CONTEST)
    {
        
$sort_by_text['u'] = $user->lang['SORT_USERNAME'];
        
$sort_by_sql['u'] = 'image_username_clean';
        
        if (
phpbb_gallery_config::get('allow_rates'))
        {
            
$sort_by_text['ra'] = $user->lang['RATING'];
            
$sort_by_sql['ra'] = (phpbb_gallery_contest::$mode == phpbb_gallery_contest::MODE_SUM) ? 'image_rate_points' 'image_rate_avg';
            
$sort_by_text['r'] = $user->lang['RATES_COUNT'];
            
$sort_by_sql['r'] = 'image_rates';
        }
    }
    if (
phpbb_gallery_config::get('allow_comments'))
    {
        
$sort_by_text['c'] = $user->lang['COMMENTS'];
        
$sort_by_sql['c'] = 'image_comments';
        
$sort_by_text['lc'] = $user->lang['NEW_COMMENT'];
        
$sort_by_sql['lc'] = 'image_last_comment';
    }
    
gen_sort_selects($limit_days$sort_by_text$sort_days$sort_key$sort_dir$s_limit_days$s_sort_key$s_sort_dir$u_sort_param);
    
$sql_sort_order $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' 'ASC');

    if (
$album_data['album_images_real'] > 0)
    {
        
$image_status_check ' AND image_status <> ' phpbb_gallery_image::STATUS_UNAPPROVED;
        
$image_counter $album_data['album_images'];
        if (
phpbb_gallery::$auth->acl_check('m_status'$album_id$album_data['album_user_id']))
        {
            
$image_status_check '';
            
$image_counter $album_data['album_images_real'];
        }

        if (
in_array($sort_key, array('r''ra')))
        {
            
$sql_help_sort ', image_id ' . (($sort_dir == 'd') ? 'ASC' 'DESC');
        }
        else
        {
            
$sql_help_sort ', image_id ' . (($sort_dir == 'd') ? 'DESC' 'ASC');
        }

        
$images = array();
        
$sql 'SELECT *
            FROM ' 
GALLERY_IMAGES_TABLE '
            WHERE image_album_id = ' 
. (int) $album_id "
                
$image_status_check
                AND image_status <> " 
phpbb_gallery_image::STATUS_ORPHAN "
            ORDER BY 
$sql_sort_order$sql_help_sort;

        if (
$mode == 'slide_show')
        {
            
/**
            * Slideshow - Using message_body.html
            */
            // No plugins means, no javascript to do a slideshow
            
if (!phpbb_gallery_plugins::$slideshow)
            {
                
trigger_error('MISSING_SLIDESHOW_PLUGIN');
            }

            
$result $db->sql_query($sql);

            
$trigger_message phpbb_gallery_plugins::slideshow($result);
            
$db->sql_freeresult($result);

            
$template->assign_vars(array(
                
'MESSAGE_TITLE'        => $user->lang['SLIDE_SHOW'],
                
'MESSAGE_TEXT'        => $trigger_message,
            ));

            
page_header($user->lang['SLIDE_SHOW']);
            
$template->set_filenames(array(
                
'body' => 'message_body.html')
            );
            
page_footer();
        }
        else
        {
            
$result $db->sql_query_limit($sql$images_per_page$start);
        }

        while (
$row $db->sql_fetchrow($result))
        {
            
$images[] = $row;
        }
        
$db->sql_freeresult($result);

        
$init_block true;

        for (
$i 0$end count($images); $i $end$i += phpbb_gallery_config::get('album_columns'))
        {
            if (
$init_block)
            {
                
$template->assign_block_vars('imageblock', array(
                    
//'U_BLOCK'        => phpbb_gallery_url::append_sid('album', 'album_id=' . $album_data['album_id']),
                    
'BLOCK_NAME'    => $album_data['album_name'],
                    
'S_COL_WIDTH'    => (100 phpbb_gallery_config::get('album_columns')) . '%',
                    
'S_COLS'        => phpbb_gallery_config::get('album_columns'),
                ));
                
$init_block false;
            }

            
$template->assign_block_vars('imageblock.imagerow', array());

            for (
$j $i$end_columns = ($i phpbb_gallery_config::get('album_columns')); $j $end_columns$j++)
            {
                if (
$j >= $end)
                {
                    
$template->assign_block_vars('imageblock.imagerow.no_image', array());
                    continue;
                }

                
// Assign the image to the template-block
                
$images[$j]['album_name'] = $album_data['album_name'];
                
phpbb_gallery_image::assign_block('imageblock.imagerow.image'$images[$j], $album_data['album_status'], phpbb_gallery_config::get('album_display'), $album_data['album_user_id']);
            }
        }
    }
    
// Is it a personal album, and does the user have permissions to create more?
    
if ($album_data['album_user_id'] == $user->data['user_id'])
    {
        if (
phpbb_gallery::$auth->acl_check('i_upload'phpbb_gallery_auth::OWN_ALBUM) && !phpbb_gallery::$auth->acl_check('a_unlimited'phpbb_gallery_auth::OWN_ALBUM))
        {
            
$sql 'SELECT COUNT(album_id) albums
                FROM ' 
GALLERY_ALBUMS_TABLE '
                WHERE album_user_id = ' 
$user->data['user_id'];
            
$result $db->sql_query($sql);
            
$albums = (int) $db->sql_fetchfield('albums');
            
$db->sql_freeresult($result);

            if (
$albums phpbb_gallery::$auth->acl_check('a_count'phpbb_gallery_auth::OWN_ALBUM))
            {
                
$allowed_create true;
            }
        }
        elseif (
phpbb_gallery::$auth->acl_check('a_unlimited'phpbb_gallery_auth::OWN_ALBUM))
        {
            
$allowed_create true;
        }
    }
}
// End of "We have album_type so that there may be images ..."

// Page is ready loaded, mark album as "read"
phpbb_gallery_misc::markread('album'$album_id);

$watch_mode = ($album_data['watch_id']) ?  'unwatch' 'watch';
// SEO DESCRIPTION START
$description '';
if ( 
$album_data['album_desc'] )
{
    include_once(
$phpbb_root_path 'includes/bbcode.' $phpEx);
    
$description $album_data['album_desc'];
    
strip_bbcode($description);
    
$description = (strlen($description) > 250 ) ? substr($description0250) . '..' $description;
}
// SEO DESCRIPTION END

$template->assign_vars(array(
    
'DESCRIPTION'                => $description// SEO DESCRIPTION
    // Canonical URL MOD
    
'U_CANONICAL'                => generate_board_url() . "/gallery/album.php?album_id=$album_id. (($start) ? "&amp;start=$start''),
    
'L_CANONICAL'                => $album_data['album_name'],
    
// Canonical URL MOD
    
'S_IN_ALBUM'                => true// used for some templating in subsilver2
    
'S_IS_POSTABLE'                => ($album_data['album_type'] != phpbb_gallery_album::TYPE_CAT) ? true false,
    
'S_IS_LOCKED'                => ($album_data['album_status'] == phpbb_gallery_album::STATUS_LOCKED) ? true false,
    
'UPLOAD_IMG'                => ($album_data['album_status'] == phpbb_gallery_album::STATUS_LOCKED) ? $user->img('button_topic_locked''ALBUM_LOCKED') : $user->img('button_upload_image''UPLOAD_IMAGE'),
    
'S_MODE'                    => $album_data['album_type'],
    
'L_MODERATORS'                => $l_moderator,
    
'MODERATORS'                => $moderators_list,

    
'U_UPLOAD_IMAGE'            => ((!$album_data['album_user_id'] || ($album_data['album_user_id'] == $user->data['user_id'])) && (($user->data['user_id'] == ANONYMOUS) || phpbb_gallery::$auth->acl_check('i_upload'$album_id$album_data['album_user_id']))) ?
                                        
phpbb_gallery_url::append_sid('posting'"mode=upload&amp;album_id=$album_id") : '',
    
'U_CREATE_ALBUM'            => (($album_data['album_user_id'] == $user->data['user_id']) && $allowed_create) ?
                                        
phpbb_gallery_url::append_sid('phpbb''ucp'"i=gallery&amp;mode=manage_albums&amp;action=create&amp;parent_id=$album_id&amp;redirect=album") : '',
    
'U_EDIT_ALBUM'                => ($album_data['album_user_id'] == $user->data['user_id']) ?
                                        
phpbb_gallery_url::append_sid('phpbb''ucp'"i=gallery&amp;mode=manage_albums&amp;action=edit&amp;album_id=$album_id&amp;redirect=album") : '',
    
'U_SLIDE_SHOW'                => (sizeof(phpbb_gallery_plugins::$plugins) && phpbb_gallery_plugins::$slideshow) ? phpbb_gallery_url::append_sid('album'"album_id=$album_id&amp;mode=slide_show" . (($sort_key != phpbb_gallery_config::get('default_sort_key')) ? "&amp;sk=$sort_key'') . (($sort_dir != phpbb_gallery_config::get('default_sort_dir')) ? "&amp;sd=$sort_dir'')) : '',
    
'S_DISPLAY_SEARCHBOX'        => ($auth->acl_get('u_search') && $config['load_search']) ? true false,
    
'S_SEARCHBOX_ACTION'        => phpbb_gallery_url::append_sid('search''aid[]=' $album_id),
    
'S_ENABLE_FEEDS_ALBUM'        => $album_data['album_feed'] && (phpbb_gallery_config::get('feed_enable_pegas') || !$album_data['album_user_id']),

    
'S_THUMBNAIL_SIZE'            => phpbb_gallery_config::get('thumbnail_height') + 20 + ((phpbb_gallery_config::get('thumbnail_infoline')) ? phpbb_gallery_constants::THUMBNAIL_INFO_HEIGHT 0),
    
'S_JUMPBOX_ACTION'            => phpbb_gallery_url::append_sid('album'),
    
'S_ALBUM_ACTION'            => phpbb_gallery_url::append_sid('album'"album_id=$album_id"),

    
'S_SELECT_SORT_DIR'            => $s_sort_dir,
    
'S_SELECT_SORT_KEY'            => $s_sort_key,

    
'ALBUM_JUMPBOX'                => phpbb_gallery_album::get_albumbox(false''$album_id),
    
'U_RETURN_LINK'                => phpbb_gallery_url::append_sid('index'),
    
'S_RETURN_LINK'                => $user->lang['GALLERY'],

    
'PAGINATION'                => generate_pagination(phpbb_gallery_url::append_sid('album'"album_id=$album_id&amp;sk=$sort_key&amp;sd=$sort_dir&amp;st=$sort_days"), $image_counter$images_per_page$start),
    
'TOTAL_IMAGES'                => $user->lang('VIEW_ALBUM_IMAGES'$image_counter),
    
'PAGE_NUMBER'                => on_page($image_counter$images_per_page$start),

    
'L_WATCH_TOPIC'                => ($album_data['watch_id']) ? $user->lang['UNWATCH_ALBUM'] : $user->lang['WATCH_ALBUM'],
    
'U_WATCH_TOPIC'                => (($album_data['album_type'] != phpbb_gallery_album::TYPE_CAT) && ($user->data['user_id'] != ANONYMOUS)) ? phpbb_gallery_url::append_sid('album'"mode=" $watch_mode "&amp;album_id=$album_id&amp;hash=" generate_link_hash("{$watch_mode}_$album_id")) : '',
    
'S_WATCHING_TOPIC'            => ($album_data['watch_id']) ? true false,
));

$extra_title = ($start 0) ? ' ' . ( floor$start $images_per_page ) + ) : '';
page_header($album_data['album_name'] . $extra_titletrue$album_id'album');

$template->set_filenames(array(
    
'body' => 'gallery/album_body.html')
);

page_footer();
Онлайн: 0
Реклама