Вход Регистрация
Файл: admin/applications/core/modules_public/ajax/skin.php
Строк: 92
<?php
/**
 * @file        skin.php     Provides ajax methods for the setting a user's skin
 *~TERABYTE_DOC_READY~
 * $Copyright: (c) 2001 - 2011 Invision Power Services, Inc.$
 * $License: http://www.invisionpower.com/company/standards.php#license$
 * $Author: bfarber $
 * @since        -
 * $LastChangedDate: 2011-08-06 01:51:01 +0100 (Sat, 06 Aug 2011) $
 * @version        v3.3.3
 * $Revision: 9373 $
 */

if ( ! defined'IN_IPB' ) )
{
    print 
"<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
    exit();
}

/**
 *
 * @class        public_core_ajax_like
 * @brief        Provides ajax methods for the central like/follow class
 */
class public_core_ajax_skin extends ipsAjaxCommand
{
    
/**
     * Main function executed automatically by the controller
     *
     * @param    object        $registry        Registry object
     * @return    @e void
     */
    
public function doExecuteipsRegistry $registry )
    {
                
/* What to do? */
        
switch( $this->request['do'] )
        {
            default:
            case 
'change':
                
$this->_change();
            break;
        }
    }
    
    
/**
     * Show more dialogue
     *
     * @param    integer        $relid        Relationship ID
     * @return    @e void
     */
    
protected function _change()
    {  
        
$skinId $this->request['skinId'];
        
        
/* Make sure cookies are set */
        
$this->settings['no_print_header'] = 0;
        
         if ( 
is_numeric$skinId ) )
        {
            
/* Rudimentaty check */
            
if ( $this->registry->output->allSkins$skinId ]['_youCanUse'] AND $this->registry->output->allSkins$skinId ]['_gatewayExclude'] !== TRUE )
            {
                if ( 
$this->memberData['member_id'] )
                {
                    
/* Update... */
                    
IPSMember::save$this->memberData['member_id'], array( 'core' => array( 'skin' => $skinId ) ) );
                }
                else
                {
                    
IPSCookie::set'guestSkinChoice'$skinId );
                }
                
                
/* Make sure mobile skin is removed */
                
IPSCookie::set("mobileApp"'false', -1);
                
IPSCookie::set("mobileBrowser"0, -1);
                
                
/* remove user agent bypass */
                
IPSCookie::set("uagent_bypass"0, -1);
                
                
/* Update member row */
                
$this->memberData['skin'] = $skinId;
            }
        }
        else if ( 
$skinId == 'fullVersion' )
        {
            
/* Set cookie */
            
IPSCookie::set("uagent_bypass"1, -1);
            
IPSCookie::set("mobileBrowser"0, -1);
            
            
/* Set member pref if not a mobile app */
            
if ( $this->memberData['userAgentType'] != 'mobileAppLegacy' && $this->memberData['userAgentType'] != 'mobileApp' )
            {
                
/* Got one set by default for this gateway? */
                
foreach( $this->registry->output->allSkins as $data )
                {
                    
/* Can use with this output format? */
                    
if ( $data['_gatewayExclude'] !== FALSE )
                    {
                        continue;
                    }
                
                    
/* Is default for our current gateway? */
                    
if ( $data['set_is_default'] && $this->caches['outputformats'][ $data['set_output_format'] ]['gateway_file'] == IPS_PUBLIC_SCRIPT )
                    {
                        
$skinId $data['set_id'];
                        break;
                    }
                }
                
                
/* Update... */
                
IPSMember::save$this->memberData['member_id'], array( 'core' => array( 'skin' => $skinId ) ) );
            }
        }
        else if ( 
$skinId == 'unlockUserAgent' )
        {
            
$this->member->updateMySession( array( 'uagent_bypass' => ) );

            
/* Set cookie */
            
IPSCookie::set("uagent_bypass"1, -1);
            
IPSCookie::set("mobileBrowser"0, -1);
        }
        else if ( 
$skinId == 'setAsMobile' )
        {
            
$this->member->updateMySession( array( 'uagent_bypass' => ) );

            
/* Set cookie */
            
IPSCookie::set("uagent_bypass"0, -1);
            
IPSCookie::set("mobileBrowser"1, -1);
        }
        
        
$this->returnJsonArray( array( 'status' => 'ok' ) );
    }
    
}
Онлайн: 1
Реклама