Вход Регистрация
Файл: apwa/includes/gallery/misc.php
Строк: 75
<?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
*/

if (!defined('IN_PHPBB'))
{
    exit;
}

class 
phpbb_gallery_misc
{
    static public function 
display_captcha($mode)
    {
        static 
$gallery_display_captcha;

        if (isset(
$gallery_display_captcha[$mode]))
        {
            return 
$gallery_display_captcha[$mode];
        }

        global 
$config, $user;

        
$gallery_display_captcha[$mode] = ($user->data['user_id'] == ANONYMOUS) && phpbb_gallery_config::get('captcha_' . $mode) && (version_compare($config['version'], '3.0.5', '>'));

        return 
$gallery_display_captcha[$mode];
    }

    static public function 
not_authorised($backlink, $loginlink = '', $login_explain = '')
    {
        global 
$user;

        if (!
$user->data['is_registered'] && $loginlink)
        {
            if (
$login_explain && isset($user->lang[$login_explain]))
            {
                
$login_explain = $user->lang[$login_explain];
            }
            else
            {
                
$login_explain = '';
            }
            
login_box($loginlink, $login_explain);
        }
        else
        {
            
meta_refresh(3, $backlink);
            
trigger_error('NOT_AUTHORISED');
        }
    }

    
/**
    * Marks a album as read
    *
    * borrowed from phpBB3
    * @author: phpBB Group
    * @function: markread
    */
    
static public function markread($mode, $album_id = false)
    {
        global 
$db, $user;

        
// Sorry, no guest support!
        
if ($user->data['user_id'] == ANONYMOUS)
        {
            return;
        }

        if (
$mode == 'all')
        {
            if (
$album_id === false || !sizeof($album_id))
            {
                
// Mark all albums read (index page)
                
$sql = 'DELETE FROM ' . GALLERY_ATRACK_TABLE . '
                    WHERE user_id = ' 
. $user->data['user_id'];
                
$db->sql_query($sql);

                
phpbb_gallery::$user->update_data(array(
                        
'user_lastmark'        => time(),
                ));
            }

            return;
        }
        else if (
$mode == 'albums')
        {
            
// Mark album read
            
if (!is_array($album_id))
            {
                
$album_id = array($album_id);
            }

            
$sql = 'SELECT album_id
                FROM ' 
. GALLERY_ATRACK_TABLE . "
                WHERE user_id = 
{$user->data['user_id']}
                    AND " 
. $db->sql_in_set('album_id', $album_id);
            
$result = $db->sql_query($sql);

            
$sql_update = array();
            while (
$row = $db->sql_fetchrow($result))
            {
                
$sql_update[] = $row['album_id'];
            }
            
$db->sql_freeresult($result);

            if (
sizeof($sql_update))
            {
                
$sql = 'UPDATE ' . GALLERY_ATRACK_TABLE . '
                    SET mark_time = ' 
. time() . "
                    WHERE user_id = 
{$user->data['user_id']}
                        AND " 
. $db->sql_in_set('album_id', $sql_update);
                
$db->sql_query($sql);
            }

            if (
$sql_insert = array_diff($album_id, $sql_update))
            {
                
$sql_ary = array();
                foreach (
$sql_insert as $a_id)
                {
                    
$sql_ary[] = array(
                        
'user_id'    => (int) $user->data['user_id'],
                        
'album_id'    => (int) $a_id,
                        
'mark_time'    => time()
                    );
                }

                
$db->sql_multi_insert(GALLERY_ATRACK_TABLE, $sql_ary);
            }

            return;
        }
        else if (
$mode == 'album')
        {
            if (
$album_id === false)
            {
                return;
            }

            
$sql = 'UPDATE ' . GALLERY_ATRACK_TABLE . '
                SET mark_time = ' 
. time() . "
                WHERE user_id = 
{$user->data['user_id']}
                    AND album_id = 
$album_id";
            
$db->sql_query($sql);

            if (!
$db->sql_affectedrows())
            {
                
$db->sql_return_on_error(true);

                
$sql_ary = array(
                    
'user_id'        => (int) $user->data['user_id'],
                    
'album_id'        => (int) $album_id,
                    
'mark_time'        => time(),
                );

                
$db->sql_query('INSERT INTO ' . GALLERY_ATRACK_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

                
$db->sql_return_on_error(false);
            }

            return;
        }
    }
}
Онлайн: 1
Реклама