コード例 #1
0
 /**
  * Parse a member's profile photo
  *
  * @access	public
  * @param	mixed	Either array of member data, or member ID to self load
  * @return	array 	Member's photo details
  */
 public static function buildProfilePhoto($member)
 {
     //-----------------------------------------
     // Load the member?
     //-----------------------------------------
     if (!is_array($member) and $member == intval($member) and $member > 0) {
         $member = self::load($member, 'extendedProfile');
     } else {
         if ($member == 0) {
             $member = array();
         }
     }
     //-----------------------------------------
     // Facebook Sync
     //-----------------------------------------
     if (IPSLib::fbc_enabled() === TRUE) {
         if ($member['fb_uid'] and $member['fb_bwoptions']) {
             $_sync = time() - 86400;
             $_active = time() - 86400 * 90;
             /* We have a linked member and options, so check if they haven't sync'd in 24 hours and have been active in the past 90 days... */
             if ($member['fb_lastsync'] < $_sync and $member['last_visit'] > $_active) {
                 require_once IPS_ROOT_PATH . 'sources/classes/facebook/connect.php';
                 $facebook = new facebook_connect(ipsRegistry::instance());
                 try {
                     $member = $facebook->syncMember($member);
                 } catch (Exception $error) {
                     $msg = $error->getMessage();
                     switch ($msg) {
                         case 'NOT_LINKED':
                         case 'NO_MEMBER':
                             break;
                     }
                 }
             }
         }
     }
     //-----------------------------------------
     // Facebook?
     //-----------------------------------------
     if ($member['fb_photo'] and ipsRegistry::member()->getProperty('g_mem_info')) {
         $member['_has_photo'] = 1;
         /* Main... */
         $member['pp_main_photo'] = $member['fb_photo'];
         $member['pp_main_width'] = '*';
         $member['pp_main_height'] = '*';
         /* Thumb */
         $member['pp_thumb_photo'] = $member['fb_photo_thumb'];
         $member['pp_thumb_width'] = 50;
         $member['pp_thumb_height'] = 50;
         /* Mini */
         $member['pp_mini_photo'] = $member['fb_photo_thumb'];
         $member['pp_mini_width'] = 25;
         $member['pp_mini_height'] = 25;
     } else {
         //-----------------------------------------
         // Main photo
         //-----------------------------------------
         if (!$member['pp_main_photo'] or !ipsRegistry::member()->getProperty('g_mem_info')) {
             $member['pp_main_photo'] = ipsRegistry::$settings['img_url'] . '/profile/default_large.png';
             $member['pp_main_width'] = 150;
             $member['pp_main_height'] = 150;
             $member['_has_photo'] = 0;
         } else {
             $member['pp_main_photo'] = ipsRegistry::$settings['upload_url'] . '/' . $member['pp_main_photo'];
             $member['_has_photo'] = 1;
         }
         //-----------------------------------------
         // Thumbie
         //-----------------------------------------
         if (!$member['pp_thumb_photo'] or $member['pp_thumb_photo'] == 'profile/') {
             if ($member['_has_photo']) {
                 $member['pp_thumb_photo'] = $member['pp_main_photo'];
             } else {
                 $member['pp_thumb_photo'] = ipsRegistry::$settings['img_url'] . '/profile/default_thumb.png';
             }
             $member['pp_thumb_width'] = 50;
             $member['pp_thumb_height'] = 50;
         } else {
             if ($member['_has_photo']) {
                 $member['pp_thumb_photo'] = ipsRegistry::$settings['upload_url'] . '/' . $member['pp_thumb_photo'];
             } else {
                 $member['pp_thumb_photo'] = ipsRegistry::$settings['img_url'] . '/profile/default_thumb.png';
             }
         }
         //-----------------------------------------
         // Mini
         //-----------------------------------------
         $_data = IPSLib::scaleImage(array('max_height' => 25, 'max_width' => 25, 'cur_width' => $member['pp_thumb_width'], 'cur_height' => $member['pp_thumb_height']));
         $member['pp_mini_photo'] = $member['pp_thumb_photo'];
         $member['pp_mini_width'] = $_data['img_width'];
         $member['pp_mini_height'] = $_data['img_height'];
     }
     return $member;
 }
コード例 #2
0
 /**
  * UserCP Save Form: Ignore Users
  *
  * @access	public
  * @return	array	Errors
  */
 public function saveFacebook()
 {
     if (!IPSLib::fbc_enabled()) {
         $this->registry->getClass('output')->showError('fbc_disabled', 1005);
     }
     //-----------------------------------------
     // Data
     //-----------------------------------------
     $toSave = IPSBWOptions::thaw($this->memberData['members_bitoptions'], 'members');
     //-----------------------------------------
     // Loop and save... simple
     //-----------------------------------------
     foreach (array('fbc_s_pic', 'fbc_s_avatar', 'fbc_s_status', 'fbc_s_aboutme') as $field) {
         $toSave[$field] = intval($this->request[$field]);
     }
     IPSMember::save($this->memberData['member_id'], array('extendedProfile' => array('fb_bwoptions' => IPSBWOptions::freeze($toSave, 'facebook'))));
     //-----------------------------------------
     // Now sync
     //-----------------------------------------
     require_once IPS_ROOT_PATH . 'sources/classes/facebook/connect.php';
     $facebook = new facebook_connect($this->registry);
     try {
         $facebook->syncMember($this->memberData);
     } catch (Exception $error) {
         $msg = $error->getMessage();
         switch ($msg) {
             case 'NOT_LINKED':
             case 'NO_MEMBER':
                 break;
         }
     }
     return TRUE;
 }