Ejemplo n.º 1
0
 /**
  * Load extra assets early in the page build process to tap into proper hooks
  *
  * @since 1.1
  */
 public function onload()
 {
     global $facebook;
     $mentions_options = get_option(self::MENTIONS_OPTION_NAME);
     if (!is_array($mentions_options)) {
         $mentions_options = array();
     }
     $this->mentions_options = $mentions_options;
     // prompt to log in or update account info
     if (!class_exists('Facebook_Admin_Login')) {
         require_once dirname(__FILE__) . '/login.php';
     }
     Facebook_Admin_Login::connect_facebook_account(array('manage_pages', 'publish_actions', 'publish_stream'));
     // prep user-specific functionality and comparisons
     $this->current_user = wp_get_current_user();
     if (!class_exists('Facebook_User')) {
         require_once dirname(dirname(__FILE__)) . '/facebook-user.php';
     }
     // does the current user have associated Facebook account data stored in WordPress?
     $facebook_user_data = Facebook_User::get_user_meta($this->current_user->ID, 'fb_data', true);
     if (is_array($facebook_user_data) && isset($facebook_user_data['fb_uid'])) {
         $this->user_associated_with_facebook_account = true;
         $this->user_permissions = $facebook->get_current_user_permissions($this->current_user);
         if (!is_array($this->user_permissions)) {
             $this->user_permissions = array();
         }
     } else {
         $this->user_associated_with_facebook_account = false;
         $this->user_permissions = array();
     }
     $this->settings_api_init();
 }
 /**
  * Conditionally load features on the edit profile page
  *
  * @since 1.2
  */
 public static function init()
 {
     $current_user = wp_get_current_user();
     if (!($current_user && user_can($current_user, 'edit_posts'))) {
         return;
     }
     // prompt to log in or update account info
     if (!class_exists('Facebook_Admin_Login')) {
         require_once dirname(__FILE__) . '/login.php';
     }
     Facebook_Admin_Login::connect_facebook_account(array('publish_actions', 'publish_stream'));
     // use the Admin Login async JS an an indicator of further login action needed (not connected or connected without all required Timeline permissions)
     if (remove_action('admin_enqueue_scripts', array('Facebook_Admin_Login', 'add_async_load_javascript_filter'), -1, 2)) {
         add_action('admin_enqueue_scripts', array('Facebook_User_Profile', 'add_async_load_javascript_filter'), -1, 2);
     } else {
         // connected. permissions exist
         add_action('personal_options', array('Facebook_User_Profile', 'personal_options'));
         add_action('personal_options_update', array('Facebook_User_Profile', 'save_data'));
         add_action('show_user_profile', array('Facebook_User_Profile', 'enhance_input_field'));
     }
     add_filter('user_contactmethods', array('Facebook_User_Profile', 'user_contactmethods'), 1, 2);
 }