Вход Регистрация
Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/sources/classes/twitter/connect.php
Строк: 561
<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.4.6
 * Twitter Connect Library
 * Created by Matt Mecham
 * Last Updated: $Date: 2013-02-06 10:51:28 -0500 (Wed, 06 Feb 2013) $
 * </pre>
 *
 * @author         $Author: mark $
 * @copyright    (c) 2001 - 2009 Invision Power Services, Inc.
 * @license        http://www.invisionpower.com/company/standards.php#license
 * @package        IP.Board
 * @link        http://www.invisionpower.com
 * @version        $Rev: 11945 $
 *
 */

class twitter_connect
{
    
/**#@+
    * Registry Object Shortcuts
    *
    * @access    protected
    * @var        object
    */
    
protected $registry;
    protected 
$DB;
    protected 
$settings;
    protected 
$request;
    protected 
$lang;
    protected 
$member;
    protected 
$memberData;
    protected 
$cache;
    protected 
$caches;
    
/**#@-*/
    
    /**
     * Twitter OAUTH wrapper
     *
     * @access    protected
     * @var        object
     */
    
protected $_api;
    
    
/**
     * IPBs log in handler
     *
     * @access    protected
     * @var        object
     */
    
protected $_login;
    
    
/**
     * User connected
     * 
     * @access    protected
     * @var        boolean
     */
    
protected $_connected false;
    
    
/**
     * User: Token
     *
     * @access    protected
     * @var        string
     */
    
protected $_userToken;
    
    
/**
     * User: Secret
     *
     * @access    protected
     * @var        string
     */
    
protected $_userSecret;
    
    
/**
     * User: Data
     *
     * @access    protected
     * @var        array
     */
    
protected $_userData = array();
    
    
/**
     * Construct.
     * $this->memberData['twitter_token'] $this->memberData['twitter_secret']
     * @access    public
     * @return    @e void
     */
    
public function __construct$registry$token=''$secret='' )
    {
        
/* Make object */
        
$this->registry   =  $registry;
        
$this->DB         =  $this->registry->DB();
        
$this->settings   =& $this->registry->fetchSettings();
        
$this->request    =& $this->registry->fetchRequest();
        
$this->lang       =  $this->registry->getClass('class_localization');
        
$this->member     =  $this->registry->member();
        
$this->memberData =& $this->registry->member()->fetchMemberData();
        
$this->cache      =  $this->registry->cache();
        
$this->caches     =& $this->registry->cache()->fetchCaches();
        
        
define("CONSUMER_KEY"   trimipsRegistry::$settings['tc_token'] ) );
        
define("CONSUMER_SECRET"trimipsRegistry::$settings['tc_secret'] ) );
        
define("OAUTH_CALLBACK" $this->settings['_original_base_url'] . '/interface/twitter/index.php?m=' $this->memberData['member_id'] );

        
/* Auto do it man */
        
if ( ! $token AND $this->memberData['member_id'] AND $this->memberData['twitter_token'] )
        {
            
$token  $this->memberData['twitter_token'];
            
$secret $this->memberData['twitter_secret'];
        }
        
        
$this->_userToken  trim$token );
        
$this->_userSecret trim$secret );
        
        
/* Test */
        
if ( ! CONSUMER_KEY OR ! CONSUMER_SECRET )
        {
            throw new 
Exception'TWITTER_NOT_SET_UP' );
        }

        
/* Set include path.. */
        
@set_include_pathIPS_KERNEL_PATH 'twitter/' PATH_SEPARATOR ini_get'include_path' ) );/*noLibHook*/
        
        /* Reset the API */
        
$this->resetApi$token$secret );
    }
    
    
/**
     * Resets API
     *
     * @access    public
     * @param    string        OAUTH user token
     * @param    string        OAUTH user secret
     */
    
public function resetApi$token=''$secret='' )
    {
        
$this->_userToken  trim$token );
        
$this->_userSecret trim$secret );
        
        
/* Load API */
        
require_once( IPS_KERNEL_PATH 'twitter/twitteroauth.php' );/*noLibHook*/
        
$this->_api = new TwitterOAuthCONSUMER_KEYCONSUMER_SECRET$this->_userToken$this->_userSecret );
        
        if ( 
$this->_userToken AND $this->_userSecret )
        {
            
$_userData $this->_api->get('account/verify_credentials');
            
            if ( 
$_userData['id'] )
            {
                
$this->_userData  $_userData;
                
$this->_connected true;
            }
            else
            {
                
$this->_userData  = array();
                
$this->_connected false;
            }
        }
        else
        {
            
$this->_userData  = array();
            
$this->_connected false;
        }
    }

    
/**
     * Return user data
     *
     * @access    public
     * @return    array
     */
    
public function fetchUserData()
    {
        return 
$this->_userData;
    }
    
    
/**
     * Return whether or not the user is connected to twitter
     *
     * @access    public
     * @return    boolean
     */
    
public function isConnected()
    {
        return ( 
$this->_connected == true ) ? true false;
    }
    
    
/**
     * Post a status update to twitter based on native content
     * Which may be longer and such and so on and so forth, etc
     *
     * @access    public
     * @param    string        Content
     * @param    string        URL to add
     * @param    bool        Always add the URL regardless of content length
     * @param    bool        Add a hashtag
     */
    
public function updateStatusWithUrl$content$url$alwaysAdd=TRUE$hashtag='' )
    {
        if ( 
is_string$hashtag ) && ! empty( $hashtag ) )
        {
            if ( 
substr$hashtag0) != '#' )
            {
                
$hashtag '#' $hashtag;
            }
            
            
$hashtag ' ' $hashtag;
        }
        else if ( ! 
is_string$hashtag ) )
        {
            
$hashtag '';
        }
        
        
/* Ensure content is correctly de-html-ized */
        
$content IPSText::UNhtmlspecialchars$content );
        
        
/* Is the text longer than 140 chars? */
        
if ( $alwaysAdd === TRUE or IPSText::mbstrlen$content ) > 140 )
        {
            
/* Leave 26 chars for URL shortener */
            
$less 26 strlen$hashtag );
            
            if ( 
IPSText::mbstrlen$content ) > ( 140 $less ) )
            {
                
$content IPSText::mbsubstr$content0, ( 140 - ( $less ) ) ) . '...' $hashtag;
            }
            
            if ( 
IPSText::mbstrlen$url ) > 26 )
            {
                
/* Generate short URL */
                
$classToLoad IPSLib::loadLibraryIPS_ROOT_PATH 'sources/classes/url/shorten.php''urlShorten' );
                
$shorten  = new $classToLoad();
                 
                 try
                 {
                     
$data $shorten->shorten$urlIPS_URL_SHORTEN_SERVICE );
                     
$url  $data['url'];
                 }
                 catch( 
Exception $ex )
                 {
                     
/* Stop the exception bubbling back to parent classes */
                 
}
             }
             
             return 
$this->updateStatus$content ' ' $url );
        }
        else
        {
            
/* Just post it */
            
return $this->updateStatus$content );
        }
    }
    
    
/**
     * Post a status update to twitter
     *
     * @access    public
     * @return    mixed        status id (int) successful, FALSE, #ftl
     */
    
public function updateStatus$text )
    {
        if ( 
IPSLib::twitter_enabled() && $text AND $this->isConnected() )
        {
            
$status $this->_api->post'statuses/update', array( 'status' => IPSText::convertCharsets$textIPS_DOC_CHAR_SET'utf-8' ) ) );
            
$code   $this->_api->http_code;
            
            
/* 200 is OK, 403 is returned if API limit is hit */
            
if ( $code == 200 AND $status['id_str'] )
            {
                
/* Update member */
                
if ( $this->memberData['member_id'] )
                {
                    
/* Update member */
                    
IPSMember::save$this->memberData['member_id'], array( 'extendedProfile' => array( 'tc_last_sid_import' => $status['id_str'] ) ) );
                }
                
                return 
$status['id_str'];
            }
            else
            {
                return 
false;
            }
        }
        
        return 
false;
    }
    
    
/**
     * Redirects a user to the oauth connect page.
     *
     * @access    public
     * @return    redirect
     */
    
public function redirectToConnectPage()
    {
        
/* Reset api to ensure user is not logged in */
        
$this->resetApi();
        
        
/* Append OAUTH URL */
        
$_urlExtra '';
        
$key       '';
        
        
/* From registration/log in? */
        
if ( ! $this->memberData['member_id'] AND $this->request['_reg'] )
        {
            
/* Create validating account for the member */
            
$key md5uniqidmicrotime() ) );
            
            
/* Append URL with correct member ID and other params */
            
$_urlExtra '&_reg=1&key=' $key;
        }
        
        
/* Generate oAuth token */
        
$rToken $this->_api->getRequestTokenOAUTH_CALLBACK $_urlExtra );
                
        if ( 
$rToken['oauth_token'] AND $rToken['oauth_token_secret'] )
        {
            
/* From registration? */
            
if ( $_urlExtra )
            {
                
/* Create validating account for the member */
                
$this->DB->insert'twitter_connect', array( 't_key'    => $key,
                                                             
't_token'  => $rToken['oauth_token'],
                                                             
't_secret' => $rToken['oauth_token_secret'],
                                                             
't_time'   => time() ) );
            }

            
/* Update user's row */
            
if ( $this->memberData['member_id'] )
            {
                
IPSMember::save$this->memberData['member_id'], array( 'core' => array( 'twitter_token'  => $rToken['oauth_token'],
                                                                                         
'twitter_secret' => $rToken['oauth_token_secret'] ) ) );
            }
                                                                                     
            if ( 
$this->_api->http_code == 200 )
            {
                
$url $this->_api->getAuthorizeURL$rToken['oauth_token'] );
                
$this->registry->output->silentRedirect$url );
            }
            else
            {
                print 
"There was an error connecting to Twitter";
                exit();
            }
        }
        else
        {
            
/* Twitter application is not set up correctly */
            
$this->registry->output->showError'twitter_app_error'0.717734 );
        }
    }
    
    
/**
     * Completes the connection
     *
     * @access    public
     * @return    redirect
     * 
     */
    
public function finishLogin()
    {
        
/* From reg flag */
        
$connectData = array( 't_key' => '' );
        
        if ( 
$_REQUEST['key'] )
        {
            
$connectData $this->DB->buildAndFetch( array( 'select' => '*',
                                                            
'from'     => 'twitter_connect',
                                                            
'where'  => "t_key='" IPSText::md5Clean$_REQUEST['key'] ) . "'" ) );
                                                            
            if ( ! 
$connectData['t_key'] )
            {
                throw new 
Exception"NO_KEY_FOUND" );
            }
            
            
/* Delete connect row */
            
$this->DB->delete'twitter_connect'"t_key='" IPSText::md5Clean$_REQUEST['key'] ) . "'" );
            
            
$member = array( 'twitter_token'  => $connectData['t_token'],
                             
'twitter_secret' => $connectData['t_secret'] );
        }
        
        if ( 
$_REQUEST['oauth_token'] )
        {
            if ( 
$member['twitter_token'] == $_REQUEST['oauth_token'] )
            {
                
/* Reset api to ensure user is not logged in */
                
require_once( IPS_KERNEL_PATH 'twitter/twitteroauth.php' );/*noLibHook*/
                
$this->_api = new TwitterOAuthCONSUMER_KEYCONSUMER_SECRET$member['twitter_token'], $member['twitter_secret'] );
                
                
/* Generate oAuth token */
                
$rToken $this->_api->getAccessToken$_REQUEST['oauth_verifier'] );
                
                if ( 
$rToken['oauth_token'] AND $rToken['oauth_token_secret'] )
                {
                    
$_userData $this->_api->get('account/verify_credentials');
                    
                    
/* From registration? */
                    
if ( $connectData['t_key'] )
                    {
                        
/* Got a member linked already? */
                        
$_member IPSMember::load$_userData['id'], 'all''twitter_id' );
                        
                        if ( 
$_member['member_id'] )
                        {
                            
$memberData array_merge$member$_member );
                            
                            
/* Ensure user's row is up to date */
                            
IPSMember::save$memberData['member_id'], array( 'core' => array( 'twitter_token'  => $rToken['oauth_token'],
                                                                                               
'twitter_secret' => $rToken['oauth_token_secret'] ) ) );
                                
                            
/* Check for partial member id */
                            
$pmember $this->DB->buildAndFetch( array( 'select' => '*''from' => 'members_partial''where' => "partial_member_id=" $memberData['member_id'] ) );

                            if ( 
$pmember['partial_member_id'] )
                            {
                                
$this->registry->getClass('output')->silentRedirect$this->settings['base_url'] . 'app=core&module=global&section=register&do=complete_login&mid='$memberData['member_id'].'&key='.$pmember['partial_date'] );
                            }
                            else
                            {
                                
/* Here, so log us in!! */
                                /* changed by denchu 26/12/12 */
                                
$r=$this->_login()->loginWithoutCheckingCredentials$memberData['member_id'], TRUE );
                                                    if (
is_array($r))
                                {
                                    if (isset(
$r[1]))
                                    {
                                        
$this->registry->getClass('output')->redirectScreen$r[0],$r[1] );
                                        
$this->registry->getClass('output')->silentRedirect$r[1] );
                                    }
                                    else
                                    {
                                        
$this->registry->getClass('output')->silentRedirect$r[0] );
                                    }
                                }
                                elseif (!
$r)
                                {
                                    throw new 
Exception'LINKED_MEMBER_LOGIN_FAIL' );
                                }
                                else
                                {
                                
$this->registry->getClass('output')->silentRedirect$this->settings['base_url'] );
                                }
                                
                            }
                        }
                        else
                        {
                            
/* No? Create a new member */
                            /* Generate BW options */
                            
foreach( array( 'tc_s_pic''tc_s_status''tc_s_aboutme''tc_si_status' ) as $field )
                            {
                                
$_toSave$field ] = 1;
                            }
                            
                            
$tc_bwoptions IPSBWOptions::freeze$_toSave'twitter' );
                            
$safeFBName   str_replace' '''IPSText::convertCharsets$_userData['screen_name'], 'utf-8'IPS_DOC_CHAR_SET ) );
                            
                            
/* Make sure usernames are safe */
                            
if ( $this->settings['username_characters'] )
                            {
                                
$check_against preg_quote$this->settings['username_characters'], "/" );
                                
$check_against str_replace'-''-'$check_against );
                                
                                
$safeFBName preg_replace'/[^' $check_against ']+/i'''$safeFBName );
                            }
                            
                            
$displayName  = ( ! $this->settings['auth_allow_dnames'] ) ? $safeFBName FALSE;
                            
                            
/* From reg, so create new account properly */
                            
$toSave = array( 'core'          => array(  'name'                      => $safeFBName,
                                                                         
'members_display_name'   => $displayName,
                                                                         
'members_created_remote' => 1,
                                                                         
'member_group_id'         => ( $this->settings['tc_mgid'] ) ? $this->settings['tc_mgid'] : $this->settings['member_group'],
                                                                        
'email'                  => '',
                                                                        
'twitter_id'             => $_userData['id'],
                                                                        
'twitter_token'          => $rToken['oauth_token'],
                                                                        
'twitter_secret'         => $rToken['oauth_token_secret'] ),
                                            
'extendedProfile' => array( 'pp_about_me'            => IPSText::getTextClass'bbcode' )->stripBadWordsIPSText::convertCharsets$_userData['description'], 'utf-8'IPS_DOC_CHAR_SET ) ),
                                                                        
'tc_bwoptions'           => $tc_bwoptions ) );
            
                            
$memberData IPSMember::create$toSaveTRUEFALSETRUE );
                            
                            if ( ! 
$memberData['member_id'] )
                            {
                                throw new 
Exception'CREATION_FAIL' );
                            }
                            
                            
/* Sync up photo */
                            
$this->syncMember$memberData['member_id'] );
                    
                            
$pmember $this->DB->buildAndFetch( array( 'select' => '*''from' => 'members_partial''where' => "partial_member_id=" $memberData['member_id'] ) );

                            if ( 
$pmember['partial_member_id'] )
                            {
                                
$this->registry->getClass('output')->silentRedirect$this->settings['base_url'] . 'app=core&module=global&section=register&do=complete_login&mid='$memberData['member_id'].'&key='.$pmember['partial_date'] );
                            }
                            else
                            {
                                throw new 
Exception'CREATION_FAIL' );
                            }
                        }
                    }
                }
            }
        }
    }
    
    
/**
     * Completes the connection
     *
     * @access    public
     * @return    redirect
     */
    
public function finishConnection()
    {
        if ( 
$_REQUEST['m'] AND $_REQUEST['oauth_token'] )
        {
            
/* Load user */
            
$member IPSMember::loadintval$_REQUEST['m'] ) );
        
            if ( 
$member['twitter_token'] == $_REQUEST['oauth_token'] )
            {
                
/* Reset api to ensure user is not logged in */
                
require_once( IPS_KERNEL_PATH 'twitter/twitteroauth.php' );/*noLibHook*/
                
$this->_api = new TwitterOAuthCONSUMER_KEYCONSUMER_SECRET$member['twitter_token'], $member['twitter_secret'] );
                
                
/* Generate oAuth token */
                
$rToken $this->_api->getAccessToken$_REQUEST['oauth_verifier'] );
                
                if ( 
$rToken['oauth_token'] AND $rToken['oauth_token_secret'] )
                {
                    
$_userData $this->_api->get('account/verify_credentials');
                    
                    
/* Ensure user's row is up to date */
                    
IPSMember::save$member['member_id'], array( 'core' => array( 'twitter_id'     => $_userData['id'],
                                                                                   
'twitter_token'  => $rToken['oauth_token'],
                                                                                   
'twitter_secret' => $rToken['oauth_token_secret'] ) ) );
                }
            }
        }
        
        
/* Redirect back to settings page */
        
$this->registry->getClass('output')->silentRedirect$this->settings['base_url'] . 'app=core&module=usercp&tab=core&area=twitter' );
    }
    
        
/**
     * Finish a log-in connection
     * WARNING: NO PERMISSION CHECKS ARE PERFORMED IN THIS FUNCTION.
     *
     * @access        public
     * @param        int            Forum ID of original member (member to keep)
     * @param        int            Forum ID of linking member  (member to remove)
     * @return        boolean
     */
    
public function finishNewConnection$originalId$newId )
    {
        if ( 
$originalId AND $newId )
        {
            
$original IPSMember::load$originalId'all' );
            
$new      IPSMember::load$newId'all' );
            
            if ( 
$original['member_id'] AND $new['twitter_id'] AND $new['twitter_token'] AND $new['twitter_secret'] )
            {
                
IPSMember::save$original['member_id'], array( 'core' => array( 'twitter_id' => $new['twitter_id'], 'twitter_token' => $new['twitter_token'], 'twitter_secret' => $new['twitter_secret'] ) ) );
                
                return 
true;
            }
        }
        
        return 
false;
    }
    
    
/**
     * Function to resync a member's Twitter data
     *
     * @access    public
     * @param    mixed        Member Data in an array form (result of IPSMember::load( $id, 'all' ) ) or a member ID
     * @return    array         Updated member data    
     *
     * EXCEPTION CODES:
     * NO_MEMBER        Member ID does not exist
     * NOT_LINKED        Member ID or data specified is not linked to a FB profile
     */
    
public function syncMember$memberData )
    {
        
//-----------------------------------------
        // INIT
        //-----------------------------------------
        
        
$exProfile = array();
        
        
/* Do we need to load a member? */
        
if ( ! is_array$memberData ) )
        {
            
$memberData IPSMember::loadintval$memberData ), 'all' );
        }
        
        
/* Got a member? */
        
if ( ! $memberData['member_id'] )
        {
            throw new 
Exception'NO_MEMBER' );
        }
        
        
/* Linked account? */
        
if ( ! $memberData['twitter_id'] )
        {
            throw new 
Exception'NOT_LINKED' );
        }
        
        
/* Not completed sign up ( no display name ) */
        
if ( $memberData['member_group_id'] == $this->settings['auth_group'] )
        {
            return 
false;
        }
        
        
/* Thaw Options */
        
$bwOptions IPSBWOptions::thaw$memberData['tc_bwoptions'], 'twitter' );
        
        
/* Grab the data */
        
try
        {
            
$this->resetApi$memberData['twitter_token'], $memberData['twitter_secret'] );
                        
            if ( 
$this->isConnected() )
            {
                
$user $this->fetchUserData();
                
                
/* Load library */
                
if ( $bwOptions['tc_s_pic'] )
                {
                    
$classToLoad  IPSLib::loadLibraryIPS_ROOT_PATH 'sources/classes/member/photo.php''classes_member_photo' );
                    
$photo = new $classToLoad$this->registry );
                    
                    
$photo->save$memberData'twitter' );
                }
                
                if ( 
$bwOptions['tc_s_aboutme'] )
                {
                    
$exProfile['pp_about_me'] = IPSText::getTextClass'bbcode' )->stripBadWordsIPSText::convertCharsets$user['description'], 'utf-8'IPS_DOC_CHAR_SET ) );
                }
                                                
                if ( 
$bwOptions['tc_si_status'] AND ( isset( $memberData['gbw_no_status_import'] ) AND ! $memberData['gbw_no_status_import'] ) AND !$memberData['bw_no_status_update'] )
                {
                    
/* Fetch timeline */
                    
$memberData['tc_last_sid_import'] = ( $memberData['tc_last_sid_import'] < ) ? 100 $memberData['tc_last_sid_import'];
                    
$_updates $this->fetchUserTimeline$user['id'], $memberData['tc_last_sid_import'], true );
                                        
                    
/* Got any? */
                    
if ( count$_updates ) )
                    {
                        
$update array_shift$_updates );
                        
                        if ( 
is_array$update ) AND isset( $update['text'] ) )
                        {
                            
/* Load status class */
                            
if ( ! $this->registry->isClassLoaded'memberStatus' ) )
                            {
                                
$classToLoad IPSLib::loadLibraryIPS_ROOT_PATH 'sources/classes/member/status.php''memberStatus' );
                                
$this->registry->setClass'memberStatus', new $classToLoadipsRegistry::instance() ) );
                            }
                            
                            
/* Set Author */
                            
$this->registry->getClass('memberStatus')->setAuthor$memberData );
                            
$this->registry->getClass('memberStatus')->setStatusOwner$memberData );
                            
                            
/* Convert if need be */
                            
if ( IPS_DOC_CHAR_SET != 'UTF-8' )
                            {
                                
$update['text'] = IPSText::utf8ToEntities$update['text'] );
                            }
                            
                            
/* Set Content */
                            
$this->registry->getClass('memberStatus')->setContenttrimIPSText::getTextClass'bbcode' )->stripBadWords$update['text'] ) ) );
                            
                            
/* Set as imported */
                            
$this->registry->getClass('memberStatus')->setIsImport);
                            
                            
/* Set creator */
                            
$this->registry->getClass('memberStatus')->setCreator'twitter' );
        
                            
/* Can we reply? */
                            
if ( $this->registry->getClass('memberStatus')->canCreate() )
                             {
                                
$this->registry->getClass('memberStatus')->create();
                                
                                
$exProfile['tc_last_sid_import'] = $update['id'];
                            }
                        }
                    }
                }
                
                
/* Allowed profile customization? */
                
if ( $bwOptions['tc_s_bgimg'] AND ( $user['profile_background_image_url'] OR $user['profile_background_color'] ) AND ( $this->memberData['gbw_allow_customization'] AND ! $this->memberData['bw_disable_customization'] ) )
                {
                    
/* remove bg images */
                    
IPSMember::getFunction()->removeUploadedBackgroundImages$memberData['member_id'] );
            
                    
$exProfile['pp_customization'] = serialize( array( 'bg_url'   => $user['profile_background_image_url'],
                                                                       
'type'     => ( $user['profile_background_image_url'] ) ? 'url' 'color',
                                                                       
'bg_color' => IPSText::alphanumericalClean$user['profile_background_color'] ),
                                                                       
'bg_tile'  => intval$user['profile_background_tile'] ) ) );
                }
                                        
                
/* Update member */
                
IPSMember::save$memberData['member_id'], array( 'core'             => array( 'tc_lastsync' => time() ),
                                                                  
'extendedProfile' => $exProfile ) );
            
                
/* merge and return */
                
$memberData['tc_lastsync'] = time();
                
$memberData array_merge$memberData$exProfile );
            }
        }
        catch( 
Exception $e )
        {
        }
        
        return 
$memberData;
    }
    
    
/**
     * Fetch a user's recent status updates (max 50)
     *
     * @access    public
     * @param    int        Twitter ID
     * @param    bool    Strip @replies (true default)
     * @param    int        Minimum ID to grab from
     * @return    array
     */
    
public function fetchUserTimeline$userId=0$minId=0$stripReplies=true )
    {
        
$userId = ( $userId ) ? $userId $this->_userData['id'];
        
$count  50;
        
$final  = array();
        
        
$updates $this->_api->get('statuses/user_timeline', array( 'id' => $userId'count' => 50'since_id' => $minId ) );
        
        if ( 
is_array$updates ) AND count$updates ) )
        {
            foreach( 
$updates as $update )
            {
                if ( 
substr$update['text'], 0) != '@' )
                {
                    
$final[] = $update;
                }
            }
        }
        
        return 
$final;
    }
    
    
/**
     * Accessor for the log in functions
     *
     * @access    public
     * @return    object
     */
    
public function _login()
    {
        if ( ! 
is_object$this->_login ) )
        {
            
$classToLoad  IPSLib::loadLibraryIPS_ROOT_PATH 'sources/handlers/han_login.php''han_login' );
            
$this->_login =  new $classToLoad$this->registry );
            
$this->_login->init();
        }
        
        return 
$this->_login;
    }
    
}
Онлайн: 0
Реклама